Eclipse SDK Changelog

What's new in Eclipse SDK 4.31

Mar 22, 2024
  • New features in the Platform and Equinox:
  • Views, Dialogs and Toolbar:
  • Viewer Limit in Workbench:
  • Several of the most commonly used Eclipse views have enabled incremental view updates. These views limit the initially-shown number of children to 1000 per parent element, and support incrementally displaying the next batch of elements. The increment number can be configured in the preferences under General > Initial maximum number of elements shown in views
  • Other (3rd party) views can also read this preference to enable this feature for that view; this must be done explicitly for each view.
  • The support for incremental view updates was added to avoid UI freezes in large viewers, where SWT/JFace approaches the limits of the underlying native widget machinery while trying to render many thousands of elements, leading to minute long UI freezes.
  • Incremental view update is currently enabled in the following views:
  • Package Explorer
  • Project Explorer
  • Problems
  • Java Outline
  • JUnit
  • This new preference can be disabled in products by specifying org.eclipse.ui.workbench/largeViewLimit=0 in the plugin_customization.ini file or via an Oomph preference task. In the same way, the preference value can be changed for products that need a lower or higher limit.
  • Filter Field for the Installation Details Dialog's Features Tab:
  • Previously the Features tab of the Installation Details dialog, unlike the dialog's Plug-ins tab, did not provide a filter field. That inconsistency has been addressed, making it easier to find details about a specific feature.
  • Showing Resolved Workspace Path in Launch Dialog:
  • A new feature has been implemented in the Eclipse launch dialog, which alerts the user that, the tilde (~) character, which usually refers to the user's home directory according to many operating system shell semantics, is unresolved whenever they enter that character. Additionally, this enhancement displays the resolved path within a label, offering user clear insight into the specified path.
  • Displaying Search Patterns in the Title Bar of Quick Search Dialogs:
  • Distinguishing between the search patterns of concurrently open Quick Search dialogs was challenging, as they were all uniformly labeled as "Quick Search". A new functionality has been incorporated, wherein the search term is displayed alongside the "Quick Search" label in the title bar of the dialog. This enhancement ensures that each window is uniquely identifiable, now denoted as "Quick Search - " followed by the respective search term, thereby enhancing effortless navigation and improved user clarity.
  • Text Editors:
  • Compare Editor:
  • The number of differences between two files is shown on the toolbar of compare editor; this is equal to the number of change markers shown next to the scroll bar in compare editor. This feature is helpful when the files compared are large and have many differences that cannot be counted manually.
  • Default Editor for a Content Type:
  • For the case that there are multiple editors suitable to open a given content type, the user can declare one of these editors as default editor, i.e., the preferred editor. Simply select the editor in the associated editors list and press the Default button. If there is no default editor, the first suitable editor found is used to open the content type.
  • Themes and Styling:
  • Hovering Over Editor / View Tabs:
  • When using the Light theme on macOS, the background color of unselected tabs now slightly changes color when the user hovers over them with the mouse cursor. The same hovering behaviour already exists on Windows and when using the Dark theme.
  • Highlighting of Active Part:
  • The Light theme now also highlights the active part with a blue underline just like it was already done when using the Dark theme.
  • Full Text in View Tabs:
  • A new preference has been introduced to enhance the user experience for managing views. With this preference, users have more control over how view tabs are displayed.
  • Previously, as the number of views increased within a view stack, the tab titles became very small, displaying only icons. This made it more challenging for users to identify views solely based on icons, sometimes leading to a cluttered UI and decreased usability.
  • To address this issue, two options are now available in the Tab icons and titles in view areas section on the General > Appearance preference page:
  • Always show full titles: This option ensures that the full text of each view title is always visible in each tab, regardless of the number of views present. It improves usability by making it easier for users to identify views by label. By default this option is off.
  • Hide icons: With this option selected, view icons are hidden, and only the full text of each view title is displayed in each tab. This helps in decluttering the UI and ensures that the editor area remains the focal point, especially in scenarios where numerous views are open. By default this option is off.
  • General Updates:
  • Eclipse Launcher Reloads Configuration Files on Restart:
  • Previously when Eclipse was restarted using File > Restart or File > Switch Workspace as well as after installing or updating from a p2 update site, it restarted with same arguments as those in effect for the initial start. Any manual changes made to the eclipse.ini, as well as changes made by p2 touchpoints when installing or updating, were ignored. To actually apply the changes of a modified eclipse.ini, it was necessary to exit the application and restart it from the launcher.
  • Now the Eclipse launcher is enhanced to reload the configuration files on restart, so any changes to the eclipse.ini take effect immediately. In addition, any command line arguments specified for the initial launch remain in effect on restart, except if the restart command contains --launcher.skipOldUserArgs.
  • New 'wires' Command in the OSGi Console:
  • Previously it was quite challenging to determine if or why a certain bundle was using other bundles or was used by other bundles. There is now a new wires command that, for a specified bundle, prints all wires that are used by the bundle and any wires it provides to other bundles. This provides a powerful tool for analyzing dependency problems and for determining why a bundle is actually used.
  • Windows Defender Automatic Configuration:
  • On Microsoft Windows 10 or later, the Microsoft Defender can significantly slow down the startup and overall performance of Eclipse-based applications. The Eclipse IDE can now detect if Microsoft Defender is active, inform the user about it and, if desired, can exclude itself from future Defender scans.
  • On Windows the General > Startup and Shutdown preference page offers further information and allows the user to disable the startup check for new installations and to run the exclusion check again for the running installation.
  • Creators of custom Eclipse-based products that use the org.eclipse.ui.ide.workbench application and want to suppress the new startup check for their product can disable it by adding the following entry to their product's preferenceCustomization properties file:
  • org.eclipse.ui/windows.defender.startup.check.skip=true
  • To execute the startup check for products that run applications other than org.eclipse.ui.ide.workbench add the entry:
  • org.eclipse.ui/windows.defender.startup.check.app=<application-id-in-use>
  • Improvement in Progress Bar Consistency and Smoothness:
  • Previously in Eclipse, the progress bar did not accurately reflect the progress relative to the total time. Specifically, the initial half of the progress bar advanced rapidly, while a noticeable delay occurred in the latter half. This discrepancy was due to the utilisation of bundle-changed events for progress determination, which resulted in an uneven progression due to the non-uniform nature of these events.
  • The progress is now determined as a function of the service level events occurring while the workbench is being bootstrapped. This gives more meaningful values about the progress the workbench has achieved towards completion. This modification has led to a more consistent and smooth advancement of the progress bar, leading to an overall improved user experience.
  • New features for Java developers:
  • Java Editor:
  • New Make Static Refactoring:
  • A new refactoring called 'Make Static' has been added to Eclipse's Java Development Tools (JDT), which converts instance methods into static methods, when possible. This refactoring adds an extra parameter to the method declarations to handle references to instance fields, methods, or classes in the original method. Existing calls to the method are altered accordingly, and if the extra parameter is necessary, the refactoring passes 'this' or the specific instance originally used to access the method.
  • To apply this refactoring, the following conditions must be met:
  • The method is not a constructor.
  • The method does not override a method from the parent type nor is overridden in any child types.
  • The type in which the method is declared is not a local type, an anonymous type, or an annotation.
  • The refactoring can be executed by selecting a method invocation, except in cases where a super method invocation is selected.
  • Java Compiler:
  • Analysis of Resource Leaks Improved with Annotations:
  • The compiler's capability to detect when resources (implementation of AutoCloseable) are not properly closed has been enhanced.
  • Previously, flow analysis for resource leaks was focused on resources that are created and closed within the same method. It could not deal well with resources that are shared between different methods, perhaps even different objects.
  • The compiler now interprets an annotation @Owning to understand data flows of resources by way of the following concepts:
  • A source of resources
  • Here a resource will come into the focus of the current method, along with a responsibility to close it.
  • A sink for resources
  • Here a resource will be consumed, either by closing, or by delegation to other code which then will be responsible
  • Resource allocation is the primordial source, and a call to AutoCloseable.close() is the final sink. When allocation and closing do not happen within the same method, then annotation @Owning should be used to create connections through which responsibility for a resource can be transferred from one method to another. The inverse annotation @NotOwning, on the other hand, signals that no such connection is made; the original holder of the resource is still responsible for sending it to a suitable sink.
  • It's in method produce() where a new resource is allocated. The return statement in that method is governed by the @Owning annotation on the method. This implies that returning this value is a sink from the point of view of produce(). By this method produce() is considered safe. But looking from the outside this sink is in fact the source by which the resource arrives in method test().
  • After method test() receives the resource, the responsibility to close is fulfilled by passing it down into consume(). In method consume() it's the annotation on parameter in that creates the connection: test() has done its part and now consume() is responsible. Protecting the resource with a try-with-resources statement is the preferred way to fulfill the responsibility, its implicit close() call is the ultimate sink. Thus the given combination of method calls indeed creates a provably safe data flow from initial source to final sink, because both calls are governed by @Owning.
  • The body of produce() also shows another detail: just like test() it passes the resource as a parameter to another method, here: skipHeader(). The parameter of skipHeader(), however, is annotated as @NotOwning by which the method rejects any responsibility. Indeed there's no close call to be found here, but that's OK under the @NotOwning annotation - this parameter is not a source. As a result, still after the call to skipHeader() it is produce() who is responsible. For that reason saying return in; is indeed necessary for produce() to demonstrate obedience to the contract.
  • Additional rules exist for fields holding a resource and for methods other than close() that perform mandatory clean-up. Details on those can be found in the documentation of org.eclipse.jdt.annotation.Owning.
  • To enable this feature select Java Compiler > Errors/Warnings > Enable annotation based resource analysis in the project preferences.
  • Java Formatter:
  • Switch Statements/Expressions: Align Arrows on Column:
  • Switch statements and expressions with arrows can now be aligned so that all arrows are placed at the same position in line. Open the formatter profile editor and find the new option under Indentation > Align items in columns > Arrows in switch statements/expressions.
  • New APIs in the Platform and Equinox:
  • Platform Changes:
  • Viewer Limit in JFace:
  • The API method org.eclipse.jface.viewers.ColumnViewer.setDisplayIncrementally(int incrementSize) was added to JFace. If incrementSize is set to some positive value, the viewer will initially show no more than this number of child elements per parent element. Additionally, the viewer provides a mechanism for a user to show more elements, if available, as needed. This API solves the problem with UI hangs in case a viewer tries to display a very large number of child elements per parent element.
  • This feature is currently implemented in org.eclipse.jface.viewers.TableViewer and org.eclipse.jface.viewers.TreeViewer but is not enabled by default; incrementSize is 0 by default. Each concrete viewer implementation is responsible to enable this feature if needed.
  • Note that even though this feature is designed to be backwards compatible API, there remains the possibility of regressions when converting existing viewer to use the new API. Please fully test your code when enabling this functionality!
  • Viewer Limit in Workbench:
  • Complementary to the JFace API above, org.eclipse.ui.IWorkbenchPreferenceConstants and org.eclipse.ui.views.WorkbenchViewerSetup API's were added. This API provides default workbench preference access and a convenient way for viewers to use default workbench values without writing extra code to listen for preference changes.
  • Deprecation of Equinox Bundles:
  • The following Equinox bundles are deprecated for removal:
  • org.eclipse.osgi.services
  • Its content has been replaced by the official OSGi bundles published to Maven-Central and it only re-exports these org.osgi.service.* bundles. Consumers are already encouraged to replace their requirements on the bundle org.eclipse.osgi.services with imports of the actual required org.osgi.service.* packages. This allows the OSGi runtime to choose any suitable, available provider of the package.
  • org.eclipse.equinox.device
  • This implementation of the org.osgi.service.device service is not known to have any users and did not receive updates in the past. It is deprecated for removal from future releases without replacement. In case there are users after all, they can continue to use past releases, use an alternative implementation, or get in contact with the Equinox team.
  • New features for plug-in developers:
  • Dialogs, Wizards and Views:
  • Support for bnd Project Templates:
  • In the 4.28 release there was support added for Automatic Manifest Generation, this is now enhanced to support bnd project templates, so you can easily create your own templates or create new projects with existing bnd templates.
  • This will now create a new template project that can be used to create new projects based on that template
  • General:
  • Declarative Services Annotations 1.4 Support:
  • PDE's Declarative Services Annotations support now supports the generation of DS 1.4. For details, read OSGi R7 Highlights: Declarative Services.
  • Classpath Fix for bnd Projects:
  • Suppose that you have imported a project into the workspace that previously required Bndtools to function correctly and now you want make some small changes. Previously you would need to install Bndtools, configure it, and hope that it's compatible with the existing Eclipse installation. With the latest release of PDE, you can just go to the compilation problem and choose "Fix Project Setup..."
  • This will present the option to add a Plug-in Dependencies Container
  • Apply that fix and you will see the bnd-defined dependencies are resolved

New in Eclipse SDK 4.30 (Dec 7, 2023)

  • New features in the Platform and Equinox:
  • Security:
  • p2 Director Application Security To provide similar security controls as available in the IDE, the following command-line arguments are now supported the p2 director application:
  • -trustSignedContentOnly | -tsco
  • Whether to trust each artifact only if it is jar-signed or PGP-signed.
  • -trustedAuthorities | -ta <comma separated list>
  • The authorities from which repository content, including repository metadata, is trusted. An empty value will reject all remote connections.
  • -trustedPGPKeys | -tk <comma separated list>
  • The fingerprints of PGP keys to trust as signers of artifacts. An empty value will reject all PGP keys.
  • -trustedCertificates | -tc <comma separated list>
  • The SHA-256 'fingerprints' of unanchored certificates to trust as signers of artifacts. An empty value will reject all unanchored certificates.
  • -verboseTrust | -vt
  • Whether to print detailed information about the content trust.
  • General Updates:
  • Support for Jakarta Annotations by Eclipse E4:
  • The Eclipse E4 Platform Dependency Injector now supports annotations from the jakarta.inject and jakarta.annotation package.
  • Plug-in developers are encouraged to migrate their E4 application model element classes to use for example jakarta.inject.Inject instead of javax.inject.Inject or jakarta.annotation.PostConstruct instead of javax.annotation.PostConstruct. At the moment annotations from both namespaces jakarta and javax are supported.
  • The support for annotations from the javax.inject and javax.annotation package is now deprecated and will be removed in a future release, after a deprecation period of at least two years. If it necessary to make a Plug-in compatible with past versions (that don't support jakarta annotations), recent and future versions (that don't support javax annotations) of the E4-Injector, it can be considered to apply the annotations from both namespaces simultaneously and to import the packages from both namespaces only optionally. But this strategy does not work for usages of the javax/jakarta.inject.Provider and should generally be used with caution and be verified in detail for more complex setups.
  • The Eclipse SDK itself already has been migrated off these annotations from the javax namespace to the jakarta replacements and therefore does not pull the former into a target-platform anymore. If your application still needs these javax annotations you potentially have to add them explicitly to your target using entries like:
  • <unit id="jakarta.inject.jakarta.inject-api" version="1.0.5"/>
  • <unit id="jakarta.annotation-api" version="1.3.5"/>
  • Counterintuitively the javax annotations are provided by a bundle with the same symbolic name as their jakarta successor but with a 1.x version, while the jakarta successors have a 2.x version. It is therefore necessary to specify the version explicitly since those bundles are not required in their latest version.
  • New Http Client Backend for p2:
  • The ECF backend used by p2 has switched to a new JDK-based provider by default. This provider is implemented using the JDK's built-in java.net.http.HttpClient, significantly reducing the number of third-party library dependencies.
  • To ease the transition, Eclipse ships both the newer JDK-based backend as well as older the Apache-based backend. The JDK-based backend takes precedence. If you encounter networking issues when installing or updating, particularly with regard to network access via a proxy, please proceed as follows:
  • Collect as much data as possible, e.g. is a proxy being used, are the sites being contacted password protected, what is your operating system, what is your JDK version, what configuration details about your network makes it unique?
  • Open an issue here with a description of the problem along with all the relevant details.
  • Consider providing a test-case for p2 to ensure that your use-case is covered now and forever into the future.
  • Configure your eclipse.ini to add the following JVM option to disable the JDK-based backend:
  • -Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclientjava
  • New features for Java developers:
  • Java Language Features:
  • The release notably includes the following Java features:
  • JEP 440: Record Patterns.
  • JEP 441: Pattern Matching for Switch.
  • Java Editor:
  • Quick Fix to add default case:
  • You can use the new Quick Fix (Ctrl+1) to add the missing default case to an enhanced switch statement.
  • Quick Fix to remove default case:
  • You can use the new Quick Fix (Ctrl+1) to remove the default case when it is present with unconditional pattern in a switch.
  • Quick Fix to insert break statement:
  • You can use the new Quick Fix (Ctrl+1) to insert the break statement when there is an illegal fall-through to a pattern in a switch statement.
  • Cleanup and quick fix to replace deprecated method calls:
  • A new cleanup has been added to the Source > Clean Up > Source Fixing tab page to replace deprecated method calls with inlined content. Choosing this option will inline the implementation of the deprecated method if and only if:
  • The deprecated method has Javadoc that specifies a @deprecated tag which ends with "use {@link ...}" or "replace by {@link ...}"
  • The {@link ...} tag refers to a method
  • The linked method is actually called in the implementation of the deprecated method
  • Methods and fields accessed in the linked method are visible at the location it will be inlined (e.g. using a package private method is ok to call if in same package)
  • Quick assist to rename constant fields:
  • A new quick assist has been added to rename static constant fields to follow a standard syntax using upper-case and underscores rather than camel case. To use: select the constant and click CTRL+1.
  • JDT Developers:
  • Pushdown of refactors and proposals to jdt.manipulations:
  • A significant amount of code was pushed down from org.eclipse.jdt.ui into org.eclipse.jdt.core.manipulations, specifically most of the proposal and refactor operations. This will allow these operations to be used in a headless environment.
  • New APIs in the Platform and Equinox:
  • Platform Changes:
  • Eclipse Search:
  • The org.eclipse.search bundle has been split into core and ui bundles. This will allow headless extenders to make use of the text search engine.
  • Snapshot API for Undoable operations:
  • The org.eclipse.ui.ide.undo package in the org.eclipse.ui.ide bundle has been migrated into the core platform and is now available in the org.eclipse.core.resources.undo.snapshot package and it's internal counterpart. This has allowed JDT to move significant portions of their refactor and proposal logic into bundles more suited to a headless environment.
  • New features for plug-in developers:
  • Editors:
  • Support for names of product update repositories:
  • The PDE Product Editor now supports in its Updates section to specify the Name of each update repository. In the assembled product the names will be presented to a user in the preferences under Available Software Sites.
  • Removed support for unnecessary attributes in Features and Products:
  • The Feature editor has its support for the following attributes of plugin elements removed:
  • download-size
  • install-size
  • unpack
  • fragment
  • These attributes are unused and without effect for a long time and unnecessarily increase the complexity of the editor and the size of a feature.xml file. They are ignored when present in an existing Feature and removed by the editor upon the next modification through the editor.
  • The Product Configuration editor has its support for the following attribute of plugin elements removed: fragment. This attribute is unused and without effect for a long time and unnecessarily increase the size of a .product file. They are ignored when present in an existing Product and removed by the editor upon the next modification through the editor.

New in Eclipse SDK 4.29 (Sep 14, 2023)

  • New features in the Platform and Equinox:
  • Open New Workbench Window on Current Monitor:
  • When creating a new workbench window, it was either placed on the monitor showing the currently active window or on the primary monitor, depending on the operating system. Now the new window is always placed on the monitor that shows the active workbench window. In case the active workbench window spans multiple monitors, the monitor that displays the largest part of the active window is selected.
  • This makes the placement of newly created workbench windows consistent across all operating systems. It also better reflects the common user expectation to have a new window placed near the existing one rather than on the primary monitor.
  • New features for Java developers:
  • Show progress when searching test methods in JUnit run/debug configuration:
  • A progress dialog and a progress bar have been added to the Run/Debug configurations of JUnit tests.
  • If the configuration references a test method then a search takes place, which sometimes requires some time and led previously to a UI freeze. There is now a progress indication in the form of a progress dialog when first opening the Run/Debug Configurations dialog. Or in the form of a progress bar if the dialog is already opened. In case the search is canceled by the user, the cancelation will be reported in the notification area of the Run/Debug Configurations dialog, the text field Test method: will be disabled and and the Run/Debug button will be disabled. The Search... button right next to Test method: remains enabled and triggers the search again
  • Java Constant Hover:
  • A new hover has been added to display the values of integer or float constants specified in binary, octal, or hex format. When hovering over such constants, the value will be shown in decimal format followed by the value in hex.
  • The hover can be activated in the Java > Editor > Hovers preference page either by selecting the Combined Hover or by clicking on the Java Constant check box.
  • Lambda Cleanup Improvements:
  • A number of improvements have been made to the Java cleanups concerning converting to use lambdas and simplifying existing lambdas. First of all, the cleanup preference: Convert functional interface instances on the Java Features tab for Java 8 has added an additional checkbox: Simplify method reference syntax for lambda conversions. This checkbox is selected by default and instructs the cleanup to use method reference syntax where possible when converting from anonymous classes. If the checkbox is unselected, method reference syntax will not be used by default (sometimes required to avoid a runtime NullPointerException) but will only be used if the user has also selected the Simplify lambda expression and method reference syntax cleanup option found on the Code Style tab. By default, the Quick fix to convert an anonymous class will also by default now use the method reference syntax where possible.
  • Improved "Ignore Whitespace" in Java Compare:
  • Up to now the "Ignore White Space" context menu action in the Java Compare editor ignored all whitespace, including what may be semantically significant whitespace. For example, a white space difference in a Java string literal is semantically significant while trailing white space is not. This has now been inproved so that e.g. white space changes in string literals are also shown while "Ignore White Space" is active.
  • New APIs in the Platform and Equinox:
  • Control.setFocus() can be configured to avoid activating its shell:
  • Calling Control.setFocus() also activates its containing Shell. This behavior is undocumented and somewhat surprising; it makes it impossible to set focus on a specific control in a background shell without that shell popping to the foreground as a side effect. The new system property org.eclipse.swt.internal.activateShellOnForceFocus can be used to disable this side effect such that only an explicit call to Shell.setActive() will bring the shell to the foreground.
  • The new system property can be added as VM argument in the eclipse.ini after the -vmargs line in that file to disable the activation side effect for a product:
  • -Dorg.eclipse.swt.internal.activateShellOnForceFocus=false
  • Or it can be specified on the command line as -vmargs -Dorg.eclipse.swt.internal.activateShellOnForceFocus=false.
  • New features for plug-in developers:
  • New OSGi Repository Target Location Type:
  • The OSGi Specification defines an XML format for representing a repository, as defined in the Repository Service Specification, to provide access to external resources based on their associated requirements and capabilities. Such a repository typically contains a set of bundles and is analogous to what is provided by a p2 update site. To facilitate PDE's integration with such OSGi standard repositories, a new target location type OSGi Repository is supported.
  • Support for Mixed Products:
  • The PDE Product Configuration Editor now supports mixed products, which consist of both plug-ins and features. To exploit this new capability, use the Overview page of the editor to select the following radio button:
  • The product configuration is based on: • plug-ins and feature
  • You can then add both plug-ins and features to the product on the Contents page of the editor.
  • You can launch mixed products from the IDE as usual via shortcuts on the Overview page. Tycho supports building mixed products since version 3.0.0.
  • Enhanced Start Levels Configuration in Products:
  • The specification of plug-in Start Levels on the Configuration page of the PDE Product Configuration Editor has been enhanced.
  • Plug-in's that are only transitively contained in a product can now have their Start Level configured as well.
  • Recommended plug-ins are only added if they are (transitively) contained in the product.

New in Eclipse SDK 4.28 (Jun 15, 2023)

  • New features in the Platform and Equinox:
  • Text Editors:
  • The editor area now shows the most important and useful commands and their key binding when no editor is open.
  • Security:
  • To address CVE-2021-41033, all access to external update sites and their artifacts is forced to use https, even when http is specified. The following system properties can be used to affect this behavior
  • Adding the line -Dp2.httpRule=allow as the last line of the eclipse.ini can be used to restore the previous behavior. This can be relevant inside a corporate environment where the firewall may introduce certificates into the network traffic that are not recognized by the cacerts of the Java runtime, i.e., this may be used to avoid "PKIX path validation failed" exceptions that can otherwise be fixed only by importing the firewall certificate into the Java runtime's cacerts.
  • These rules can be specified as configuration-scoped preferences available via the Authorities tab of the Install/Update → Trust preferences:
  • The default preference value of each rule is determined by the corresponding system property.
  • To address CVE-2021-41037, all access to external update sites and their artifacts during installation and updates is tracked and reported so that you are made aware of the source of the content being installed and can decide whether to trust content from that source. This provides an additional level of security in addition to the signing of artifacts. Simply installing content, even without actually installing any associated artifacts, can in general reconfigure the installation and that could potentially be used for malicious purposes. Also, simply because an artifact is signed, doesn't imply the artifact is necessarily trustworthy. It is important to take into account the source of installed content before installing that content.
  • When installing new content as well as when installing updates, the following Trust Authorities dialog is displayed showing the sites that have been contacted, details about those sites, and details about the specific content being installed from each site
  • All content must originate from sites explicitly accepted as trusted before installation proceeds and before library artifacts are downloaded. The trusted authorities can be remembered in the preferences to avoid being prompted repeatedly for authorities that have already been considered as trusted. Those recorded preferences are available for review and modification via the Authorities tab of the Install/Update → Trust preferences
  • The system property p2.trustedAuthorities can be used to specify a (comma or space separated) list of authorities considered trusted. The default value is effectively -Dp2.trustedAuthorities=https://download.eclipse.org,https://archive.eclipse.org, but product providers may set it differently in their product's eclipse.ini.
  • In the event that a PGP key is compromised, the key may be revoked. Artifacts signed before the revocation date are generally still valid, but an attacker can create back-dated signatures. Therefore, any artifact signed with a revoked key, and any internal exception that occurs while processing the revocation information of the key, will result in that artifact being treated as a suspicious artifact, leading to a Trust Artifacts prompt. You may still choose to install such content, but you will be reminded of the risk. You should consider very carefully the source of the content as tracked for your review before taking this risk.
  • As an extra security precaution, the handling of Cancel for the Trust Artifacts dialog has been modified:
  • In particular, if you choose to reject the content, i.e., if you press Cancel or close the dialog, any of the prompted artifacts that have been downloaded during the current install or update operation will be removed from disk to avoid caching of untrusted artifacts.
  • General Updates:
  • Launch/Debug context menus directly shows relevant launch configurations:
  • In the "Run As/Debug As" context-menus, the shortcuts that can resolve directly to 1 or more launch configurations (i.e., shortcuts which implement ILaunchShortcut2) are replaced by the resolved launch directly.
  • This allows to more directly know which launch configuration will be used for the Run or Debug session so it will be easier to identify it afterwards if you intend to tweak it. It is also useful in case you have setup multiple launch configurations of the same for the project and often want to run different ones; for example for A/B testing or for distinct build actions.
  • Logging API SLF4J version 2:
  • The Eclipse Platform is now shipped with slf4j.api version 2 by default. But even for version 2 the back-ward compatibility of the package org.sfl4j (but only for that package) has not been broken and slf4j.api exports the package org.sfl4j in version 1 and 2. Therefore Plug-ins that only import and use the package org.slf4j in version 1 don't have to be touched.
  • Besides breaking changes in the other sfl4j packages than org.sfl4j, version 2 has also changed the way to connect the slf4j.api bundle to a logging-backend to use Java's ServiceLoader mechanism. Consequently you have to make sure that the logging-backend used in your application uses is compatible with slf4j.api version 2. Additionally a OSGi Service Loader Mediator is needed to permit Java's ServiceLoader access to the the provider bundle. To fulfill this requirement Eclipse Platform ships org.apache.aries.spifly.dynamic.bundle by default. If you assemble a final application you have to ensure that this bundle is automatically activated during startup. For an Eclipse Product this can be achieved by assigning the Plug-in org.apache.aries.spifly.dynamic.bundle a suitable start-level in the Configuration section of your product.
  • New features for Java developers:
  • Open Call Hierarchy action added to the list of actions shown on Ctrl+Click for fields or methods
  • Java Formatter:
  • New Javadoc html format option When the formatter option Comments > Javadocs > Format HTML tags is selected, the default behavior for block tags (<pre>, <p>, <dl>, <ul>, <ol>, <hr>, and <dir>) is to put each tag and it's closing tag on separate lines. A new sub-option: Do not put block tags on separate lines has been added to specify not to do this and instead have the tags start on a new line and have their closing tags end a line.
  • Debug:
  • New launch config name preference For launch configurations, a name is often generated on behalf of the user which is simply the type name of the Java application, Java applet, or the JUnit test class. In some instances, a user may have classes with the same name in different packages or projects. Creating launch configurations for each will reuse the type name and add (nn) for each configuration created after the first. Looking in the Run Configurations or Debug Configurations dialogs or the pull-down for Run or Debug, it may be difficult to determine via the name which type the configuration is referring to.
  • To alleviate this, a new set of preferences has been added to specify that the launch configuration name generated use the fully qualified type name. Once set, new configurations (either manually created in the Run Configurations or Debug Configurations dialogs or as a result of specifying Run as... or Debug as... from the context menu will qualify the generated name. Existing configurations are not altered.
  • To specify the new preferences, go to Preferences > Java > Launching
  • JDT Developers:
  • Method to mark message keys used When developing Java code, there are set mechanisms for handling message translation. There is also a context action Source > Find Broken Externalized Strings which checks .properties file and Java message translation classes that access the .properties file. The action checks for a number of issues including whether a message key is unused or missing and provides the results in the Search dialog.
  • When detecting unused keys, it is possible for the action to generate false positives. For example, a message could be used by another plug-in or product which is not in the workspace or a message key could be dynamically created and the action cannot detect this.
  • A new mechanism has been added for a developer to denote that a message key is known to be used and should be ignored by the Find Broken Externalized Strings action. Simply copy any known used messages from the existing .properties file into a .usedproperties file with the same name, in the same package. The .usedproperties file follows the same syntax as a .properties file and any message keys added there will not be marked as unused by the action. The message data in the .usedproperties file is ignored and can be removed if desired.
  • Updated CompilationParticipant API:
  • New CompilationParticipant.postProcess() method was added that notifies participants about finished class compilation. This notification occurs right before the compiled class is written out to disk. This allows participants perform arbitrary byte code manipulation on generated classes.
  • New APIs in the Platform and Equinox:
  • Platform Changes:
  • Command Icons in e4:
  • It is now possible to set command icons in the e4 model using the Eclipse 4 Model Editor. Previously this was only possible for e3 commands using the org.eclipse.ui.commandImages extension point.
  • Influence "Ignore Whitespace" in Compare:
  • The "Ignore White Space" context menu action in the Eclipse Compare editor ignores all whitespace, including what may be semantically significant whitespace. For example, in Java a whitespace difference in a string literal is semantically significant while trailing whitespace is not.
  • It is now possible to hook into the ignore-whitespace algorithm by providing an implementation of the new IIgnoreWhitespaceContributor interface. Return an instance of this interface in your override of the createIgnoreWhitespaceContributor method in your sub-class of TextMergeViewer.
  • Your implementation is called for each detected whitespace difference when "Ignore White Space" is enabled. Your implementation can decide whether that whitespace difference should be ignored or not.
  • Onboarding information in editor area:
  • The editor area now shows the most important and useful commands and their key binding when no editor is open. The information shown is dependent on the currently active perspective. Perspective have to provide these details by providing an extension to the org.eclipse.ui.perspectiveExtensions extension point. Provide and image in the editorOnboardingImage attribute and an short text in the editorOnboardingText attribute of the perspectiveExtension element. Up to 5 commands can be provided in the editorOnboardingCommand. For more details refer to the extension point's documentation. The org.eclipse.ui.resourcePerspective perspective can be used as an example.
  • Enhanced IPath creation and conversion:
  • The IPath interface now provides various static factory methods to create IPath instances from portable, Linux or Windows path strings as well as from java.io.File or java.nio.file.Path objects. You can now create an IPath completely without referring to org.eclipse.core.runtime.Path.
  • Furthermore IPath.toPath() was added, which converts an IPath to a equivalent java.nio.file.Path object.
  • New features for plug-in developers:
  • Dialogs, Wizards and Views:
  • Support for automatic Manifest generation:
  • PDE now support generating the manifest automatically
  • Create a new Plugin project and select the standard OSGi framework type and select "Generate OSGi metadata automatically"
  • Review and maybe adjust the usual settings like name and version
  • Editors:
  • New Manifest Cleanup action:
  • Select the Organize Manifest Action
  • Choose the "Recompute Import-Package ..." cleanup
  • The Manifest will be transformed and the result can be reviewed
  • Support for auto-completion for build.properties file:
  • PDE now support auto-completion of keys in the build.properties file.
  • User does not need to remember the complete words in the build.properties header specification. They can start typing as much as they know, and invoke the auto-completion key bindings (usually ctrl+space) to obtain the list of potential valid headers that match the user's intent.
  • PDE Compiler:
  • Support for schema and feature compilers for project-specific preferences:
  • PDE now support all available compilers for project preferences
  • the project specific preferences property page contained only plugin compiler (manifest compiler), while the schema and feature compiler settings are available in the workspace-wide settings. remove this restriction and open up all the compiler settings for project-specific settings too.
  • Security:
  • CVE-2021-41033: Enforce https protocol:
  • PDE's access to update sites when populating target platforms is affected by the enforcement of https access. See the Platform's CVE-2021-41033: Enforce https protocol section for details.

New in Eclipse SDK 4.27 (Mar 16, 2023)

  • New features in the Platform and Equinox:
  • Views, Dialogs and Toolbar:
  • Open Resource dialog now defaults to "substring" search
  • New features for Java developers:
  • Eclipse compiler for Java (ECJ):
  • ECJ separated from JDT Core
  • JUnit:
  • Launch JUnit tests in subpackages
  • Java Editor:
  • New code mining preference
  • Javadoc inline @return
  • JDT Developers:
  • Four new views added to SDK
  • New APIs in the Platform and Equinox:
  • Platform Changes:
  • Persistence and migration of perspectives

New in Eclipse SDK 4.25 (Sep 15, 2022)

  • New features in the Platform and Equinox:
  • Views, Dialogs and Toolbar:
  • Less usage of icons in user confirmation dialogs:
  • Multiple dialogs have been updated to not contain a question icon if they ask the user for a decision to align with the UI guidelines existing for the operating systems. For example, if you close an edited file, the resulting dialog will not show a help icon anymore. Also MessageDialogs methods will not show a question icon anymore for question / confirmation dialogs.
  • Text Editors:
  • Preference to enable word wrap by default:
  • A new preference has been added in the General > Editors > Text Editors page to specify that 'word wrap' should be enabled by default when opening text editors. This preference is disabled by default.
  • Preference to enable word wrap by default:
  • A new preference has been added in the General > Editors > Text Editors page to specify that 'word wrap' should be enabled by default when opening text editors. This preference is disabled by default.
  • Themes and Styling:
  • Forms have updated default background color:
  • The background color of UI toolkit forms has been updated, as blue gradients are not very common now in user interfaces. This will affect all form based user interfaces which do not use styling. You can see the new behavior in the Eclipse IDE when theming is turned off via the preferences.
  • Selected tab in CTabFolder is now highlighted:
  • The selected tab in a CTabFolder now has a highlight bar to more easily identify the the current selection.
  • Debug:
  • System encoding for Console:
  • A new launch configuration attribute is added to allow processes start with the system encoding. As a result, Java processes can start without specifying explicit "-Dfile.encoding=" option and JVM will use the system defaults defined by the user environment.
  • Support for ANSI escape codes in Console:
  • The Console interprets ANSI escape codes to produce styled output.
  • It supports 16 colors / 256 colors / true-colors for foreground and background, color palettes, and attributes like bold, italic, underline, invert, conceal, strike, crossed-out, framed
  • Only "CSI n m" (SGR, Select Graphic Rendition) control sequences are supported.
  • They set display attributes, but cannot be used to change the content of the output (erase actions, cursor positioning, scrolling).
  • Non-SGR sequences are not interpreted, but are recognized and hidden, so you will not see them.
  • This functionality is available for all the text output to the standard output or standard error. It works for Java, C/C++, Perl, Python, shell, Groovy, Maven or any Eclipse supported language.
  • Preferences are available under Preferences > Run/Debug > Console > ANSI Support.
  • New features for Java developers:
  • JUnit:
  • Test Suite wizard supports JUnit 5:
  • The New JUnit Test Suite Wizard has been enhanced to now allow the creation of a JUnit 5 test suite using the @Suite annotation. To open the New JUnit Test Suite Wizard for the current package, go to New > Other > Java > JUnit > JUnit Test Suite.
  • Java Editor:
  • Convert while loops to enhanced for loops:
  • The clean-up to convert to enhanced 'for' loops where possible has been enhanced to convert eligible while statements that use an iterator into enhanced for loops. The current clean-up already supports converting 'for' loops using an iterator into an enhanced 'for' loop.
  • To apply the cleanup, select the Java 5 Convert to enhanced 'for' loops checkbox on the Java Feature tab in your cleanup profile.
  • Convert to switch expression:
  • The clean-up to convert to a switch expression where possible has been enhanced to recognize switch statements that have every case either end in a return statement or a throw of an exception. In such a case the switch statement is converted into a return of a switch expression.
  • To apply the cleanup, select the Java 14 Convert to switch expression where possible checkbox on the Java Feature tab in your cleanup profile.
  • Debug:
  • Double click in "All References and "All Instances" pop-up to navigate to Type Previously, clicking on any of the shown items in the "All References" and "All Instances" popup wasn't acted upon. This is now improved - if the selected variable or field type's source code is available, the editor tries to open it, and navigate to the declaration.
  • New APIs in the Platform and Equinox:
  • Platform Changes:
  • MessageDialog not using icons for user facing dialogs. The org.eclipse.jface.dialogs.MessageDialog has been updated to not use icons for user facing dialogs of type QUESTION, QUESTION_WITH_CANCEL and CONFIRM to align with the UI guidelines regarding such dialogs for the various operating systems.
  • SWT Changes:
  • Configure highlight bar thickness on CTabFolder:
  • The CTabFolder now has a new API setSelectionBarThickness(int thickness) that allows to set the thickness of the highlight bar in the selected tab.
  • By default a highlight bar is now drawn in the selected tab. You can switch to the old look without highlight bar by using CTabFolder#setSelectionBarThickness(0).
  • Set custom text for MessageBox's buttons:
  • The MessageBox now has a new API setButtonLabels(Map<Integer, String> labels) that allows to configure the text on the buttons.
  • New features for plug-in developers:
  • General Updates:
  • Default target platform ships different 3rd party bundles:
  • Some 3rd-party bundles (JUnit, some Apache commons, ASM...) have changed as they are now originating from Maven Central instead of Eclipse Orbit. They sometimes provide slightly different capabilities so some remediation may be necessary if you're using the default target plaform. See the documentation for details about possible issues and remediation.
  • Support for the OSGi Bundle and Versioning Annotations:PDE now supports the OSGi Bundle and OSGi Versioning annotations to be used in a Plugin Project.

New in Eclipse SDK 4.22 (Dec 9, 2021)

  • NEW FEATURES IN THE PLATFORM AND EQUINOX:
  • Views, Dialogs and Toolbar:
  • External browser used by default:
  • By default the Eclipse IDE will open the default system browser instead of the internal browser. You can change this setting via Windows -> Preferences -> General -> Web Browser.
  • Launch Configuration View:
  • The new Launch Configuration View allows quick access to all your launch configurations without the need to enter the launch dialogs.
  • You can launch (run, debug, profile, etc.) as well as terminate and/or relaunch running configurations directly from the view.
  • The view also provides API which allows third party contributions to hook into the view and provide "launchables".
  • Double click on Problem without File shows in default view:
  • Double click on Problems executes "Go to Resource". But there are cases where no File (column "Path") is associated with the Problem. In those cases "Go to Resources" cannot be executed. Instead the default "Show In" action is now executed. This default depends on the perspective.
  • Text Editors:
  • Multiple text selection:
  • Support for multiple selection has been added to Text Editors. Multi selections allow most edit operations (text replacement or insertion, extend selection to next word or to next line, copy/paste...) to apply simultaneously on all ranges.
  • Multiple strategies are available to enable multi-selections:
  • Turn a block selection into a multi-selection using the To multi-selection command,
  • Add a caret with Alt+Click,
  • Use the new Select All button on the Find/Replace dialog.
  • Themes and Styling:
  • Windows dark theme styles title bar:
  • The windows title bar in the dark theme on Windows OS is now styled in the default dark theme.
  • General Updates:
  • Ant 1.10.12:
  • Eclipse has adopted Ant version 1.10.12.
  • NEW FEATURES FOR JAVA DEVELOPERS:
  • Java™ 17 Support:
  • Java 17 is out and Eclipse JDT supports Java 17 in 4.22.
  • The release notably includes the following Java 17 features:
  • JEP 306: Restore Always-Strict Floating-Point Semantics.
  • JEP 406: Pattern Matching for switch (Preview).
  • JEP 409: Sealed Classes (Final).
  • JUnit:
  • Support execution of JUnit tests that are records:
  • For Java 16 and up, JUnit tests can now be implemented as records. Right-clicking on an individual test or the record itself and selecting Run as will allow executing the test via either the JUnit Plug-in Test or JUnit Test context menu choices.
  • JUnit 5.8.1:
  • JUnit 5.8.1 is here and Eclipse JDT has been updated to use this version.
  • JUnit 4.13.2:
  • JUnit 4.13.2 is here and Eclipse JDT has been updated to use this version.
  • Java Editor:
  • Convert String concat to Text block:
  • A new cleanup and quick-assist has been added to convert appropriate String concatenations into Java Text Blocks. Appropriate String concatenations must have at least 3 non-empty substrings with one per line and the Java level must be 15 or higher. Line comments for all substrings but the last line will be lost after conversion. Spaces at the end of substrings preceding the newline will result in s being substituted while substrings that do not end with newlines will have a added at the end of the line to preserve concatenation.
  • Surround with try-with-resources quickfix:
  • A new quickfix has been created to offer Surround with try-with-resources for resource leaks and potential resource leaks when the resource in question implements AutoCloseable.
  • Java Views and Dialogs:
  • Improved lambda support in the Call Hierarchy view:
  • The Call Hierarchy view is enhanced with showing not only the callers of the lambda function, but the callers of the declaring function too.
  • Paste into Open Type dialog:
  • If text is pasted into the Open Type dialog then it is automatically cleaned up to the included type name by best effort.
  • Debug:
  • Label Objects during debugging:
  • During debugging a Java application, often we have to deal with lot's of object instances, and it's not always easy to distinguish between them. That's why the experience is improved, with the ability to set a label on individual objects.
  • The heuristics support
  • NEW APIs IN THE PLATFORM AND EQUINOX:
  • Platform Changes:
  • New API for JFace TextViewers: IMultiTextSelection:
  • JFace Text now supports a new type of ITextSelection that allows to keep track of multiple simultaneous selections or caret locations. The new interface is IMultiTextSelection.
  • Most text manipulation operations are capable of working with IMultiTextSelection. Some other operations may need to be customized to handle this IMultiTextSelection more specifically.
  • Enable "Select All" with IFindReplaceTargetExtension4:
  • The extension interface IFindReplaceTargetExtension4 can be added to existing IFindReplaceTarget implementations in order to enable the Select All feature from the Find/Replace dialog. It consists of addition of a single setSelection(IRegion[] regions) method.
  • Double click on Problem without File shows in default view:
  • Double click on Problems executes "Go to Resource". But there are cases where no File (column "Path") is associated with the Problem. In those cases "Go to Resources" cannot be executed. Instead the new defaultShowIn view is opened. It is optional and can be configured per perspective using the defaultShowIn attribute.
  • Resource cache in Jface:
  • We added a LRU cache for image resources. It can be disable with system property: org.eclipse.jface.resource.cacheSize=0
  • The default cacheSize is 300.
  • In the eclipse IDE it is used to automatically cache the icons of the toolbars.
  • See DeviceResourceDescriptor(boolean shouldBeCached) for details.
  • SWT Changes:
  • Windows dark theme styles title bar bars:
  • The windows title bar in the dark theme on Windows OS is now styled
  • Display.syncCall() returns a value from SWT threadDo you need a user feedback (or any value from swt widget) in a background thread from SWT thread? You can get it now even easier then using Display.syncExec()
  • Tree fires SWT.EmptinessChanged event:
  • SWT Tree widget now fires SWT.EmptinessChanged event on below two conditions:
  • After first tree item addition.
  • On last tree item removal.
  • Equinox p2 Changes:
  • Log unsafe transport or verification technologies used at installation When installing from a repository, p2 now logs a warning in case some technologies used for the installation are considered unsafe. Here are the cases covered so far and that will trigger a logged warning:
  • http repositories are used (http repositories expose to CVE-2021-41033)
  • Artifact checksums are either missing, or none of the available digest algorithms is considered safe (eg md5).
  • NEW FEATURES FOR PLUG-IN DEVELOPERS:
  • Dialogs, Wizards and Views:
  • Model spy migrated to PDE:
  • The model spy which allows to view and adjust the Eclipse application model has been integrated into PDE. You can open it via Windows > Spies > Model Spy.
  • CSS spy migrated to PDE:
  • The CSS spy which allows to view and edit the current CSS styling of your IDE or your RCP application has been integrated into PDE. You can open it via Windows > Spies > CSS Spy.
  • PDE Compiler:
  • Quickfix for "Automatic-Module-Name header is redundant":
  • A new quick-assist has been added for fixing "Automatic-Module-Name header is redundant" problem. The quickfix removes automatic module name header from the manifest file.

New in Eclipse SDK 4.21 M1 (Jul 10, 2021)

  • Platform and Equinox:
  • Views, Dialogs and Toolbar
  • Text Editors
  • Preferences
  • Themes and Styling
  • General Updates
  • Views, Dialogs and Toolbar:
  • New clean message dialog api:
  • A new API in the class PlainMessageDialog is introduced. It uses a builder pattern to create an immutable instance of PlainMessageDialog. It has a clean API and consists of methods for e.g. the button labels, the message and the image.
  • General Updates:
  • New method create(int style) in GridDataFactory:
  • GridDataFactory contains a new static method create(int style) which returns a new GridDataFactory instance.
  • This method is similar to new GridData(int style).

New in Eclipse SDK 4.20 M3 (May 21, 2021)

  • New and Noteworthy:
  • New features in the Platform and Equinox:
  • Views, Dialogs and Toolbar:
  • Export certificate during installation
  • Quick Search mention max occurences reached
  • Text Editors:
  • History for derived files
  • Themes and Styling:
  • Ant 1.10.10
  • New features for Java developers:
  • JUnit:
  • BREE update for JDT JUnit runtime bundles
  • Java Editor
  • Better type for the local variable creation quickfix
  • Use instanceof clean up
  • Operand factorization clean up
  • Pull out a duplicate 'if' from an if/else clean up
  • One if rather than duplicate blocks that fall through clean up
  • valueOf() rather than instantiation clean up
  • Primitive rather than wrapper clean up
  • Redundant truth clean up
  • Implicit comparator clean up
  • Initialize array with curly clean up
  • Remove variable assignment before return clean up
  • Replace System.getProperty() calls clean up
  • Java Views and Dialogs:
  • Differentiate search filter for normal imports from static imports
  • Create module-info.java option during New Java Project creation
  • Default Java cleanup profile of Eclipse has been updated
  • Debug:
  • Copy Run Configuration item details
  • Debug hover for chain of variables
  • New APIs in the Platform and Equinox:
  • Platform Changes
  • ECommandService and EHandlerService released as API
  • Embedded Jetty server updated to version 10.x
  • Register Model Fragments via Manifest header
  • Register Model Processor via DS
  • New static methods to ease Status creation
  • SWT Changes:
  • p2 Changes:
  • Verify PGP signatures during installation
  • New features for plug-in developers:
  • Dialogs, Wizards and Views:
  • Preference option enabling non-disposed SWT Resources error handling
  • Editors:
  • API Tools:
  • Preference option for "Missing EE descriptions" removed
  • Report multiple increase of the service segment or minor version
  • PDE Compiler:
  • The "not a perfect match" problem has a quick fix to change the BREE

New in Eclipse SDK 4.19 (Mar 18, 2021)

  • New features in the Platform and Equinox:
  • Text Editors:
  • Horizontal Scrolling in Text Editor You can now scroll horizontally in the Text Editor using Shift+Mouse Wheel and touchpad gestures on Windows.
  • Debug:
  • Find Next/Previous in Console View
  • Disable All in Breakpoints view
  • Termination of child processes of launched OS processes can be configured
  • Preferences:
  • External browsers on Windows
  • New features for Java developers:
  • JUnit:
  • JUnit 5.7.1
  • Java Editor:
  • Quick assist to create try-with-resources
  • Add catch clause to try-with-resources assists
  • Quick fix to create permitted type declaration
  • Java Feature clean ups
  • Pattern matching for instanceof clean up
  • Reduce indentation clean up
  • Extract increment clean up
  • Use Comparator.comparing() clean up
  • Multi-catch clean up
  • Convert fields into local variables
  • Static inner class clean up
  • Use String.replace() clean up
  • Primitive comparison clean up
  • Primitive parsing clean up
  • Pull down common code from if/else statement clean up
  • String.substring() clean up
  • Unreachable block clean up
  • Unlooped while clean up
  • Source Fixing clean ups
  • Object.equals() on non null clean up
  • Comparison to zero clean up
  • Java Views and Dialogs:
  • Parallel index search
  • Coloring restricted identifiers
  • Externally annotate sources
  • static import org.mockito.Mockito.* available as favorite
  • Debug:
  • Toggle tracepoints in editor ruler
  • Toggle breakpoint on a list of methods including abstract method
  • New APIs in the Platform and Equinox:
  • Platform Changes:
  • Content-assist contributor allows more flexible control of completion triggers
  • Contribute to content-assist for Generic Editor with OSGi services
  • API for Atomic IMarker creation with attributes
  • IncrementalProjectBuilder can optionally implement new clean with arguments method
  • Moved com.ibm.icu from org.eclipse.e4.rcp to org.eclipse.rcp feature
  • SWT Changes:
  • API for Resource disposal tracking
  • API for Shell maximum size
  • Edge back-end support for Browser
  • New features for plug-in developers:
  • Editors:
  • Include/exclude bundles directly from the target definition view
  • API Tools:
  • Warning for missing bundle in API baseline
  • Improved text for exported packages in the editor
  • API Enhancements:
  • New advanced editing capabilities for custom target platforms

New in Eclipse SDK 4.18 (Feb 27, 2021)

  • New features in the Platform and Equinox:
  • Views, Dialogs and Toolbar:
  • Filter field for configuration details
  • Preference to remember the last used page in search dialog
  • Text Editors:
  • Open-with does not store the editor relationship anymore
  • Preferences:
  • Enable word wrap on console output
  • Themes and Styling:
  • New "System" theme
  • Windows dark theme styles progress bars
  • Debug:
  • Terminate descendants of operating-system processes launched by Eclipse
  • General Updates:
  • Ant 1.10.9
  • New features for Java developers:
  • JUnit:
  • JUnit 5.7
  • Java Editor:
  • Completion overwrites in Java editor
  • Insert best guessed parameters in Java editor
  • Quick assist to create new implementation
  • Quick fixes on permitted types
  • Convert to switch expression
  • Uses the else-if pseudo keyword
  • Bitwise expressions in comparisons
  • Pull up assignment
  • Use switch
  • Add elements in collections without loop
  • Use ternary operator
  • Use '==' or '^' on booleans
  • Redundant falling through blocks
  • Redundant if condition
  • Use Objects.hash()
  • Use String.join()
  • Use Arrays.fill()
  • Evaluate without null check
  • Avoid double negation
  • Redundant comparison statement
  • Unnecessary super() call
  • Initialize collection at creation
  • Initialize map at creation
  • Remove overridden assignment
  • Raise embedded if into parent if
  • Redundant return
  • Redundant continue
  • Use try-with-resource
  • Exit loop earlier
  • Use StringBuilder
  • Primitive serialization
  • Prefer boolean literal
  • Diamond operator <> (Remove redundant type arguments)
  • Java Views and Dialogs:
  • Fine-grained search for permitted types
  • Sort library entries alphabetically in Package Explorer enabled by default
  • Java Formatter:
  • Annotations wrapping
  • Debug:
  • Support for @argfiles when launching
  • Stabilized logical structures in Variables view with active GC
  • New APIs in the Platform and Equinox:
  • Platform Changes:
  • JFace ImageDescriptor supports alternative naming scheme for high dpi
  • Slicing Support for IProgressMonitor
  • IAdapterFactory as Service
  • IDialogSettingsProvider
  • PlatformUI dialog settings
  • CompositeFactory support layout supplier
  • New DateTimeFactory
  • JFace Util method to check if widget can be used
  • Generic Unit Test View and extension point
  • Lines visible CSS option
  • SWT Changes:
  • Windows dark theme styles progress bars
  • New features for plug-in developers:
  • PDE Compiler:
  • New problem severity level to indicate information

New in Eclipse SDK 4.12.0 (Apr 12, 2019)

  • Here are some of the more noteworthy items available in this release:
  • New features in the Platform and Equinox
  • New features for Java developers
  • New APIs in the Platform and Equinox
  • New features for plug-in developers

New in Eclipse SDK 4.9.0 (Sep 20, 2018)

  • The release deliverables have the same form as previous releases, namely:
  • Source code release for all Eclipse Project deliverables, available as versions tagged "R4_9" in the Eclipse Project Git repositories.
  • Eclipse SDK (runtime binary and SDK for Equinox, Platform, JDT, and PDE) (downloadable).
  • Eclipse Equinox (runtime and source repositories) (downloadable).
  • Eclipse Platform (runtime and source repositories) (downloadable).
  • Eclipse RCP (runtime and source repositories for the Rich Client Platform) (downloadable).
  • Eclipse JDT (runtime and source repositories for the Java Development Tooling) (downloadable).
  • Eclipse PDE (runtime and source repositories for the Plug-in Development Environment) (downloadable).
  • Eclipse SDK Examples (downloadable).
  • SWT distribution (downloadable).

New in Eclipse SDK 4.7.3a (Apr 11, 2018)

  • JDT:
  • Eclipse support for Java 10
  • Add Java 10 JRE
  • var - compilation - eg of negative case
  • JEP 286 var - compilation
  • var - completion
  • var - no completion - negative case
  • var - Hover for javadoc display
  • var - Quick Assist for converting from var to type
  • var - Quick Assist for converting from type to var

New in Eclipse SDK 4.7.3a RC 1 (Mar 25, 2018)

  • Eclipse support for Java 10

New in Eclipse SDK 4.7.0 (Jun 28, 2017)

  • NEW FEATURES IN THE PLATFORM AND EQUINOX:
  • EDITORS:
  • An easily-extensible Generic Text Editor added
  • Generic editor can now read patch and diff files
  • Images are opened in the Eclipse IDE
  • Editor selection dialog: Use for all
  • Show Annotation renamed to Show Revision Information
  • Configure left and right sides in Compare editors
  • Ctrl+E command improvements
  • Content Assist for Feature Name in Model Editor
  • Model Editor improvements
  • DEBUG:
  • "Launch Group" launch configuration type
  • "Terminate and Relaunch" from Run menu, context menu and tool bar
  • Breakpoints view: Sort By > Creation Time
  • Breakpoints in Overview Ruler
  • VIEWS, DIALOGS AND TOOLBAR:
  • Improved string matching in Quick Access
  • Wildcards in Quick Access
  • Quick Access search text in Help
  • Filter previous choices in Quick Access
  • Command icons shown in Quick Access
  • Show/hide Status Bar
  • GTK tree collapse/expand key bindings
  • Simplified filters dialog for Problems, Bookmarks, and Tasks views
  • Copy Details submenu for Problems and Tasks views
  • Filter dialog for Problems, Bookmarks, and Tasks views easier to reach
  • "Copy Build Id Information" in About dialog
  • 'Filters and Customization...' in Project Explorer
  • "Recently used filters" feature in Project Explorer
  • "Other Projects" working set in Project Explorer
  • Perspective descriptions in Open Perspective dialog
  • Maximize and Minimize via Window > Appearance menu
  • 'Switch Workspace' and 'Restart' menu items
  • Improved exit and restart dialogs
  • Installation Details menu entry removed
  • DnD source image for List widget (GTK only)
  • PREFERENCES:
  • Window title configuration
  • Option to copy your preferences during workspace switch
  • Option to disable Problems view decoration on startup
  • "Always run in background" enabled by default
  • THEMES AND STYLING:
  • New default styling for form-based user interfaces
  • Support for extending existing CSS preference nodes
  • Default styling for table and tree headers
  • Colors in interactive popups
  • Fixed Progress view colors for the dark theme
  • Improved default styling for the toolbar
  • Reduced TabItems padding under GTK+
  • Reduced window margins
  • GTK theme system property
  • More high resolution images
  • GENERAL UPDATES:
  • Eclipse as Apple disk image
  • Ant 1.10.1
  • Java 9 previews
  • NEW FEATURES FOR JAVA DEVELOPERS:
  • JAVA EDITOR:
  • Open Implementation of selected Type
  • Automatically insert Braces at correct position
  • Escape text when pasting into a string literal
  • Quick Fix to move type annotations
  • Defaults for annotation type elements in Javadoc
  • Set colors for Javadoc
  • JAVA VIEWS AND DIALOGS:
  • Skip button in Organize Imports dialog
  • Hide inherited members from java.lang.Object
  • Hide deprecated fields and methods
  • Group by Project in Search view
  • Type name with extension in New Java Type creation wizards
  • HiDPI JDT icons
  • JAVA COMPILER:
  • New Java index
  • Pass compiler options to annotation processors
  • Warnings for unlikely argument types
  • JAVA FORMATTER:
  • New way to count comment width
  • DEBUG:
  • Method result after step operations
  • Triggers for breakpoints
  • Conditional watchpoint
  • Toggle Tracepoint
  • Show Logical Structure enabled by default
  • Remote Java Application "Socket Listen" type supports multiple incoming connections
  • New option to disable Hot Code Replace
  • JUNIT:
  • Show JUnit failure trace in Console view
  • NEW APIs IN THE PLATFORM AND EQUINOX:
  • PLATFORM CHANGES:
  • Extension points added for Generic Text Editor
  • An extension point to associate existing editors and content-types
  • CompositeImageDescriptor HiDPI-ready
  • Update in API for decorating images
  • New API for controlling build order
  • Asynchronous content-assistant
  • Stable sorting in viewers based on ViewerComparator
  • Reduced performance impact of very frequent progress reporting from background jobs
  • Application model allows toolbar definitions for parts and perspectives
  • Separation of DI extension annotations and supplier
  • @Service annotation available in DI extensions
  • Dependency injection for Eclipse 3.x views available
  • Declarative services implementation replaceable
  • Imperative Expressions
  • Screenshot from JUnit
  • Debugging test timeouts
  • EQUINOX CHANGES:
  • New Declarative Services Implementation supporting OSGi R6
  • Several plug-ins define Provided Capabilities metadata
  • Non-modal Install dialog
  • Progress reporting in the installation dialog
  • Tracing honors -consoleLog
  • Source-incompatible change in org.eclipse.equinox.common requires Java 8 BREE for some dependant plug-ins
  • SWT CHANGES:
  • SWT requires 1.8 Java runtime
  • Lambda as SelectionListener
  • Lambda as KeyListener
  • New API Image#getImageData(int zoom)
  • New APIs for Table header colors
  • New APIs for Tree header colors
  • Table and Tree header styling via CSS
  • Apply GTK+ CSS at runtime
  • Tweak the GTK+ theme
  • Button widget background and foreground color can be styled on Windows
  • SWT spies separated from Tools plug-in
  • Image#getImageDataAtCurrentZoom() and Image#getBoundsInPixels() are deprecated
  • AccessibleTableListener#getCaption(..) deprecated
  • AccessibleTableListener#getSummary(..) deprecated
  • Composite#changed(Control[]) deprecated
  • NEW FEATURES FOR PLUG-IN DEVELOPERS:
  • DIALOGS, EDITORS AND VIEWS:
  • New Layout Spy Tool
  • Support for Nested categories
  • Manage versions for included features
  • Option added for workspace plug-ins overriding target plug-ins
  • 'Show In Console' added to context menu of Error Log view
  • Reload Target Editor
  • Target definition files can be edited with the Generic Editor
  • p2.inf files open in Properties Editor
  • Search finds plug-in references in features
  • Quick Fix to add bundle or package adds import statement
  • Validate launch configuration activated by default
  • 'Restore to defaults' buttons added to Tracing tab
  • OSGI DECLARATIVE SERVICES:
  • Support for Declarative Services Annotations v1.3
  • WIZARDS:
  • Plug-in project template added for Generic Text Editor
  • More descriptive plug-in template names
  • Plug-in selection filter in Feature project wizard
  • Filter in plug-in and feature export wizards
  • API TOOLS:
  • Change in Execution Environment creates a version problem
  • Default method addition reported as a breaking change
  • Field addition to Class reported as a breaking change
  • Option for field addition to an annotation
  • Types marked with @noimplement and @noextend processed by API leak analysis
  • Quick Fix to configure problem severity
  • Reorganized Version Management preferences tab

New in Eclipse SDK 4.6.2 (Dec 21, 2016)

  • New and Noteworthy:
  • Platform:
  • Configure left and right sides in Compare editors (new in 4.6.2):
  • Compare editors now offer a button Swap Left and Right View. The direction of comparison is preserved between invocations of the Compare editor and can also be changed in the Compare/Patch preference page.
  • PDE:
  • Validate launch configuration activated by default (new in 4.6.2):
  • When you create a new Eclipse Application launch configuration, PDE will now by default enable the option to Validate Plug-ins automatically prior to launching. This helps you to identify missing plug-in dependencies before the actual start of the application and makes it easier for new plug-in and RCP developers to identify common problems. You can disable this validation in the launch configuration dialog, on the Plug-ins tab.
  • Platform Developers:
  • Stable sorting in viewers based on ViewerComparator (new in 4.6.2):
  • The org.eclipse.jface.viewers.ViewerComparator now ignores decorations from a DecoratingLabelProvider during its sorting. For example, if the EGit team provider is used, it prepends "> " for changed files. This additional "> " is now ignored.
  • The goal of this change is to eliminate java.lang.IllegalArgumentException: Comparison method violates its general contract! that could occur when label decorations were updated in the background.
  • For now, you can disable this fix by setting the system property eclipse.disable.fix.for.bug364735 to true. This temporary system property is planned to be removed unless issues with the new sorting are discovered.

New in Eclipse SDK 4.6.1 (Dec 21, 2016)

  • New and Noteworthy:
  • Platform:
  • Improved default styling for the toolbar (new in 4.6.1):
  • The styling of the window toolbar has been improved. On Windows, the toolbar color is now consistent with the color of the perspective switcher.
  • Images are opened in the Eclipse IDE (new in 4.6.1):
  • Image files are now opened directly in Eclipse by default. The Internal Web Browser has been registered as default editor for files with the png, jpg, jpeg, gif, bmp, and ico extensions.
  • "Terminate and Relaunch" from Run menu, context menu and tool bar (new in 4.6.1):
  • A Terminate and Relaunch option is now available while launching from Run menu, context menu and tool bar. The default setting is to launch without terminating previous launches. To enable automatic termination, select the option Terminate and Relaunch while launching on Preferences > Run/Debug > Launching.
  • The behavior not selected on the preference page can also be activated on-demand by holding the Shift key while launching the configuration from history.
  • Command icons shown in Quick Access (new in 4.6.1):
  • Quick Access (Ctrl+3) now shows the icon for a Command if available. Otherwise, it still shows the default blue ball.

New in Eclipse SDK 4.7.0 M1 (Sep 16, 2016)

  • This release brings Java 9 and JUnit 5 support and improves HiDPI support. For more details see the official Oxygen Draft Plan (not yet approved by the PMC).

New in Eclipse SDK 4.6.0 (Jun 23, 2016)

  • This release brings HiDPI support, improved GTK+ 3 support, adds support for the Solaris x86 and SPARC 64-bit platforms, and works on the Eclipse support for Java 9. For more details see the official Neon Plan.
  • New & Noteworthy URL:
  • New and Noteworthy
  • API Certification:
  • The project leadership certifies that the APIs in this release are "Eclipse Quality".
  • Architectural Issues:
  • Eclipse Platform no longer runs on JREs below 8
  • Many plug-ins switched BREE to JavaSE-1.7 or JavaSE-1.8
  • Many plug-ins got generified
  • Plug-ins started to use Java 8 constructs like lambdas or default methods
  • More APIs have been released for Eclipse Platform 4
  • Reference JREs for development and testing updated to most recent releases but no major changes
  • Linux builds come with GTK+ 3 support enabled by default. If GTK+ 3 is not available we fall back to GTK+ 2
  • PDE Build is in maintenance mode and is no longer used to build the Eclipse platform itself
  • removed fragments:
  • org.eclipse.core.filesystem.java7 (functionality moved into org.eclipse.core.filesystem, see bug 472554)
  • org.eclipse.core.runtime.compatibility.registry (for details see bug 394739)
  • removed bundle:
  • org.eclipse.core.runtime.compatibility (for details see bug 394739)
  • new bundles:
  • org.eclipse.ui.intro.quicklinks
  • org.eclipse.pde.ds.annotations
  • Security Issues:
  • The Eclipse top-level project continues to fix and resolve any security related issues found during development and penetration testing.
  • Non-Code Aspects:
  • The build system is under continuous improvement
  • http://wiki.eclipse.org/Platform-releng/Platform_Build
  • Mars maintenance builds after 4.5.2 via Long Term Support (LTS) forge
  • Conscious effort to engage contributors and accept contributions
  • Attended code camps and hack days
  • Held dedicated patch days where contributions were reviewed
  • Initiated and heavily participated in Great Fixes for Neon
  • See plan item bug 474498 for other activities to get more contributions
  • Internationalization:
  • Latin1 and Latin2 locales are supported in all operating environments
  • DBCS locales are supported on all platforms
  • BIDI locales supported on all platforms
  • GB18030-1 Chinese code page standard is supported on Windows, Linux GTK+ and Mac
  • Added BIDI support for combo box and a new Globalization preference page
  • Localization:
  • Tested for Localization and participating in Babel Project
  • Accessibility:
  • Significant focus on US Gov. Section 508 accessibility compliance
  • Open accessibility bugs: 14 major, 1 critical (targeted for 4.6.1), 0 blocker
  • The 4.6 release contains updated User and ISV documentation
  • Articles, examples, and tutorials
  • Tutorials for Eclipse 4 are listed under http://wiki.eclipse.org/Eclipse4/Tutorials
  • Numerous Webinars and Podcasts
  • Usability:
  • Eclipse SDK is a superior IDE for Java tooling and plug-in development
  • Many usability enhancements made in 4.6 to continue this tradition (see New and Noteworthy for details)
  • Strings are externalized to support translation into other languages
  • Extensive use of mnemonics and shortcut keys in the user interface enhances usability
  • Full Bidirectional support (mirroring) on Windows and Linux GTK+, bidirectional text on Mac OS X
  • Accessibility support for Windows, Linux GTK+ and Mac OS X
  • Eclipse User Interface Guidelines followed
  • End of Life:
  • When evolving API the Eclipse Platform will, whenever possible, deprecate API methods and continue to keep them operational
  • Exceptions to this rule are in the deprecated API removals document
  • A process is in place for removing invalid/outdated API – http://wiki.eclipse.org/Eclipse/API_Central/API_Removal_Process
  • Standards:
  • Annotation Processing APIs
  • com.sun.mirror 1.5
  • javax.annotation.processing 1.6
  • Java compiler API
  • javax.tools 1.6
  • User Assistance consumes (parses) a small subset of RSS 1.0 to get news from eclipse.org
  • JUnit 4.12
  • Java SE
  • Compiler can generate Java 1.1 through Java 1.8 code
  • Eclipse Platform runs on Java SE 8
  • SWT: Win32, GDI, GDI+, OLE, IE, Cocoa, Core Graphics, Quick Draw, Safari, ATSUI, X Windows, X/t, GTK+, GDK, Pango, Cairo, ATK, Mozilla, Uniscribe,OpenGL
  • Communities:
  • The Eclipse team is active in Bugzilla, forums and mailing lists
  • Many Eclipse blogs on http://planeteclipse.org
  • Some teams are using IRC to communicate
  • irc://irc.freenode.net#eclipse-dev
  • irc://irc.freenode.net/#eclipse-e4
  • also see: http://wiki.eclipse.org/index.php/IRC
  • Major Eclipse presence on http://stackoverflow.com
  • The Eclipse team participates in code camps, conference presentations, and tutorials, including EclipseCon, EclipseCon Europe, Eclipse Demo Camps, JavaOne, JavaWorld,JAOO, JAX, JAX Asia, JSConf
  • The Eclipse team interacts with other open source projects, standards bodies, and other projects on eclipse.org, including OSGi, Apache Ant, JCP, WTP, GCJ, GTK+

New in Eclipse SDK 4.6.0 M1 (Dec 11, 2015)

  • PLATFORM:
  • Preference setting to disable the Eclipse styling (CSS based theming):
  • You can disable the CSS-based styling of the Eclipse IDE via Preferences > General > Appearance > Enable theming. This will prevent Eclipse from rendering custom colors, shades, and borders, and may result in better performance.
  • PLATFORM DEVELOPERS:
  • Drag and drop for toolbars in Eclipse applications without CSS styling:
  • The Eclipse styling engine allows to configure drag images via CSS. In previous releases, applications without this setting would not support drag and drop of toolbars. Eclipse RCP applications without the related CSS styling now support drag and drop of toolbars out of the box. This applies also for applications which disable the CSS-based styling.
  • Additional varargs constructor for MessageDialog:
  • The org.eclipse.jface.dialogs.MessageDialog class has now an additional vararg constructor that simplifies passing button labels.
  • Workbench logger supports debug level:
  • Previously, the workbench logger wrote a trace when Logger#debug(Throwable) was called, even if the application was not started in debug mode. Now, log entries on the debug level are ignored, unless the application is started with the debug flag (-debug).
  • Support for @CanExecute of MDirectMenuItem and MDirectToolItem:
  • Previously, methods annotated with @CanExecute were only evaluated on execution for MDirectMenuItems and MDirectToolItems, not on rendering. So if the method annotated with @CanExecute returned false, the rendering was not updated to show the menu/tool item disabled. Now @CanExecute method is also evaluated during rendering, to show the enabled state according to the method result.
  • PDE:
  • Product editor "Dependencies" tab renamed to "Content":
  • The "Dependencies" tab in the product editor was renamed to the more descriptive term "Content". This avoids confusion with the "Dependencies" tab in the MANIFEST.MF editor.
  • Retirement of the Eclipse 4 project wizard:
  • As PDE offers now Eclipse 4 RCP templates, the separate Eclipse 4 project generation wizard has been retired.

New in Eclipse SDK 4.5.0 (Jun 25, 2015)

  • New Java IDE features, including hierarchical view of nested projects, ability to customize perspectives and speed improvements for text search.
  • Integrated tools for building and maintaining Docker containers, available from Linux Tools project.
  • Oomph project now makes it possible to record and share user preference settings across individual workspaces.
  • New integration with Gradle making it easy to manage Gradle builds from Eclipse, via the Buildship project.
  • Improved Maven support, including support for Maven 3.3.3, improved Maven archetypes integration and enhanced auto-completion in the pom editor.
  • Automated error reporting that allows Eclipse users to report errors directly to Eclipse projects.
  • The new Thym project provides tools for building cross-platform mobile applications using Apache Cordova.

New in Eclipse SDK 4.4.2 (Feb 28, 2015)

  • JDT:
  • Core:
  • 416480 Error in bytecode generated by ECJ compiler leads to IncompatibleClassChangeError
  • 422810 Incorrect ambiguous call error
  • 422832 Class file triggers StackOverflowError when creating type hierarchy
  • 428845 eclipse compiler does not flag ambiguous method call in some cases
  • 430425 Type mismatch: cannot convert from StyleConverter to StyleConverter
  • 430572 CCE on hovering over 'super' in lambda expression
  • 430656 Content assist does not work for method reference argument
  • 430667 no proposals around lambda as a field
  • 432110 nested lambda type incorrectly inferred vs javac
  • 432977 Incorrect 'type is not visible' compiler error
  • 433458 Eclipse accepts lambda expression with potentially uninitialized arguments
  • 433588 ECJ compiles an ambiguous call in the presence of an unrelated unused method.
  • 434326 Slow compilation of test cases with a significant amount of generics
  • 434483 Type inference not picked up with method reference
  • 435219 No proposals for some closure cases
  • 435348 NPE in JDT Core during AST creation
  • 435682 content assist not working inside lambda expression
  • 436139 Hierarchy search involving lambda and anonymous class do not find the anonymous class
  • 437973 Missing implementation of JLS 15.12.2.5 Third Bullet - Part 2 (Varargs & Overload)
  • 438471 Java 1.8 functional interface rejected if it extends an interface which overrides another interface's method
  • 438923 nested type is inappropriately considered "indirectly referenced"
  • 438945 NullPointerException InferenceContext18.checkExpression in java 8 with generics, primitives, and overloading
  • 438952 StackOverflowError at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.traverse(SingleTypeReference.java:108)
  • 439431 AIOOBE in ClassFile#dumpTargetTypeContents()
  • 439515 ECJ reports error at method reference to overloaded instance method
  • 440731 Hover, F3 doesn't work for method reference in method invocation of overloaded method
  • 441734 Generic method with nested parameterized type argument fails on method reference
  • 441907 Eclipse 4.4.x compiler generics bugs with streams and lambdas
  • 441929 @SuppressWarnings("unchecked") not accepted on local variable
  • 441983 Gerrit job test failures due to missing dependency on both versions of o.e.jdt.annotation
  • 442416 $deserializeLambda$ missing cases for nested lambdas
  • 442418 $deserializeLambda$ off-by-one error when deserializing the captured arguments of a lambda that also capture this
  • 442452 Bogus error: The interface Comparable cannot be implemented more than once with different arguments
  • 442755 NPE at ProblemHandler.handle
  • 442983 NPE in Scope.findDefaultAbstractMethod
  • 443456 $NON-NLS$ in lambda statement used as argument does not work
  • 443854 \u205f should not be a valid Java Identifier Part
  • 444665 Internal compiler error: java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.problem.ProblemReporter.invalidMethod
  • 444772 NullPointerException in ReferenceExpression.shouldGenerateImplicitLambda
  • 444773 NullPointerException in LambdaExpression.analyseCode
  • 444803 Exception in thread "main" java.lang.VerifyError: Bad local variable type
  • 445147 java.lang.StackOverflowError with annotation-based null analysis enabled and recursive types
  • 445630 java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding cannot be cast to org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding
  • 445669 java.lang.IllegalStateException at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.clone(UnresolvedReferenceBinding.java:43)
  • 446317 java.lang.VerifyError: Bad type on operand stack with Lambdas and.or inner classes
  • 446715 org.eclipse.jdt.internal.compiler.lookup.TypeSystem.cacheDerivedType(TypeSystem.java:268)
  • 446765 Completion does not work with both lambdas and anonymous classes in the picture
  • 447062 lambda as a class member - IllegalArgumentException
  • 447119 method references lost generic type information (4.4 -> 4.4.1 regression)
  • 447774 Auto complete does not work when using lambdas with cast
  • 448112 Compiler crash (ArrayIndexOutOfBoundsException at StackMapFrame.addStackItem()) with unused variable
  • 448556 Invalid compiler error about effectively final variable outside the context of a lambda.
  • 449063 Bring back generic signatures for Lambda Expressions
  • 449410 Eclipse java compiler does not detect a bad return type in lambda expression
  • 449453 Lambda deserialization fails with ClassCastException
  • 449467 Invalid lambda deserialization with anonymous class
  • 450684 Javadoc URL that redirects from http to https yields: Unknown javadoc format for
  • 450930 ECJ reports error at method reference to overloaded instance method
  • 451289 AttachedJavadocTests.test025 failed
  • 451650 Exception: Java Model Status [Unknown javadoc format for %class%
  • 452780 Internal compiler error: arrayIndexOutOfBounds
  • 453117 Eclipse Cannot Handle Method References for BiFunction
  • 453475 Contradictory null annotations (4.5 M3 edition)
  • 456395 can't compile the Java8 code
  • 457007 VerifyError
  • 458071 Comparator error in M20150121-0900
  • 459145 Eclipse compiler - method reference not applicable (works with javac)
  • 459254 Error during AST creation: AIndexOutOfBounds 400 (@NonNull analysis)
  • 457871 Java compiler CPU time regression compared to 4.2.2
  • Debug:
  • 442500 Breakpoints are not hit if there is an alternate stratum
  • 450841 Update default URLs for attached Javadoc for JREs to https
  • Text:
  • 444897 ICU bug: Double clicking doesn't select the Korean word I clicked on in text editors.
  • UI:
  • 434941 Sort members has different behavior in eclipse 4.4
  • 444823 Overriding default method results in Exception
  • PDE:
  • UI:
  • 434195 Very long build times after plugin manifest update
  • 443114 extension editor no longer shows custom icons
  • Platform:
  • Ant:
  • 455542 Antui Performance test throw java.lang.IllegalMonitorStateException
  • 457725 AntRunner#start(...) does not call IApplicationContext#applicationRunning()
  • Debug:
  • 444362 NPE IN LaunchPerspectivePreferencePage
  • Doc:
  • 444046 Broken link on ref-globalizationprefs.htm
  • 458954 Touch ISV doc to force Javadoc regeneration for 4.4.2
  • Releng:
  • 290883 Add links to XML test results
  • 387066 Remove Red X's (and the few green checkmarks) from main DL page
  • 407775 "org.eclipse.rcp.configuration_root.cocoa.macosx.x86(_64)" p2 IU does not delete eclipse symlink during uninstall
  • 437486 Add JSch 0.1.51 to Platform
  • 443353 Increase (and better check) feature versions
  • 443475 Avoid starting "unit tests" from "test machine builds"
  • 444392 Update Jetty prereq to 8.1.16.v20140903
  • 447617 Keep the branding plug-in version consistent with the feature version
  • 448426 set up Hudson jobs performance tests of M-builds
  • 451347 Issues with Maintenance Build publication - static files not copied into place
  • 452566 overall test status always show's "green", even though obvious failures
  • 453677 add httpcomponents client 4.3.6 for ECF, p2, and Orbit for Luna SR2
  • 453758 react to changes in Tycho 0.22 that allows configuration for resolution
  • 454567 Eclipse version for build M20141205-1400 says 4.4.1
  • 455160 increment rcp feature in maintenance to 4.4.2
  • 456849 Add version 52.1.1 ICU4J for Luna SR2 release
  • 457071 Inconsistencies in org.eclipes.rcp.configuration for Mac OS X platform
  • 457171 adopt and adjust to new jasper.glassfish bundle from Orbit
  • 457379 Use Luna SR2 compiler to produce Luna SR2
  • 457381 Use (near) Eclipse 442 repo to build Eclipse 442
  • 457766 Mac 32 bit missing from DL page
  • 457767 "computeUpdateURL.php" is incorrect for maintenance RCs
  • 457856 Inconsistencies in org.eclipes.rcp.configuration for Mac OS X platform - missing ppc64le
  • 458048 Update ECF for Luna SR2 and M5
  • 458051 Update prereqs for Luna SR2 - EMF
  • 458080 Delta pack inadvertently removed from 4.4.2 DL page
  • 458680 Declare Luna SR2 RC2
  • 458953 Update copyright date of product and features where needed
  • 459159 Comparator error in rcp.config in M20150204-0900
  • 459183 Declare Luna SR2 RC3
  • 459926 org.eclipse.sdk.ide product in 4.4.2RC3 still says 4.4.1
  • 460650 Suggest to 'archive' (at least) 4.3.2 (and it's Java 8 patch)
  • Runtime:
  • 392794 Hang saving workspace on exit while saving workbench state
  • SWT:
  • 342145 Embedded IE11 browser shows webpages in Quirks(IE5)-Mode
  • 371326 "Widget is disposed" in combination with accessibility
  • 422371 Eclipse crashes with EXC_BAD_ACCESS (SIGSEGV) in Tree.drawInteriorWithFrame_inView
  • 426062 RCP application menu not shown when launched from Eclipse on OS X 10.9
  • 433275 Caret gets lost
  • 433486 Can't open FileDialog on OS X 10.9
  • 443230 org.eclipse.swt.gtk.linux.ppc64le.build.sha1 needs manual updates (was: comparator error)
  • 444143 Selected Item color is overriden when setBackgroundColor is called for Tree and Table
  • 446534 Table.tree with column headers visible has issues on OS X 10.10 Yosemite
  • 451886 NPE in FileDialog.panel_shouldShowFilename
  • 453827 DND does not work on Group composite
  • 454622 Work around missing Device#getSystemFont() in #getFontList(..) and FontDialog
  • 458640 SWT should increase bundle version in Luna SR2 to 3.103.2.qualifier
  • 458868 Open Implementation and Open Declaration broken in M5
  • Text:
  • 434901 catch Content Assist exceptions to protect navigation keys
  • 441827 TextViewer.ViewerState.restore method loses caret position
  • UI:
  • 409081 BIDI 4.2.2 : Welcome Page isn't correctly mirrored
  • 413410 Lots of Keybinding conflicts occurred on official CDT Eclipse Kepler 4.3
  • 429308 Make workspace selection dialog visible in the task manager of the OS
  • 432498 Fast views get created on start-up
  • 432686 show toolbar does not take effect if workspace is started with hidden toolbar
  • 435274 Leak of ActionContributionItem every time New.Import context menu item is made visible
  • 435300 Narrowing an empty Outline view lowers the "An outline is not available" label
  • 435421 Active Part is incorrect and does not have focus on a restart
  • 435847 Reset Java Perspective is not getting the Package Explorer back
  • 436116 NPE when opening Internal Web Browser View on Ubuntu 12.04
  • 439988 Activities should allow default enablement to be controlled by product definition
  • 443350 No theme applied by default on Windows 8.x, Vista, XP
  • 443514 Tooltips of parts are not translated in PartStack
  • 443845 Console tab flickers when not active
  • 446965 EditorInputPropertyTester called for IEditorPart with IEditorInput set
  • 448561 LocaleChangeServiceImpl does not process MWindow#sharedElements
  • 449188 Empty perspective after restarting Eclipse with open Welcome page
  • 453857 CTabFolder layouts content too often . too many of them
  • 458141 ProgressManagerUtil.getDefaultParent() does not honor splash shell -> new shell hidden behind splash screen
  • User Assistance:
  • 450171 Don't use SSL anymore to avoid POODLE attack
  • 457396 Build of "webapp" fails due to changes in org.apache.jasper.glassfish

New in Eclipse SDK 4.3.0 M6 (Mar 16, 2013)

  • Platform:
  • Migration Wizard: Building on the changes introduced in M5 to detect changes in shared installs, Eclipse now includes a migration wizard to help users through the re-ininstallation of their plug-ins.
  • This wizard is presented in two situations. First, when a read-only installation of Eclipse is being changed (i.e. Eclipse is being updated or plugins are added / remove), second when a new read-only installation of Eclipse is run for the first time.
  • BIDI Text Direction: New API has been added to allow text direction to be set independent of the widget orientation. For more info see Snippet 364.
  • New SWT color constant for hyperlinks: A new constant (SWT_COLOR_LINK_FOREGROUND) has been added that will return the native color of hyperlinks on all platforms.
  • Whole word option on File Search page: The File Search page now allows to search for words via a new option.
  • Open Search dialog on last used page: The Search dialog can now be configured to open on the last used page, instead of computing the best matching page based on the current selection:
  • JDT:
  • 'Convert to if-!-return' Quick Assist: Ever encountered a long if statement that can be safely inverted to an early return, so that you can ignore the code that follows, and make it easier to understand? Now, you can just use a Quick Assist (Ctrl+1) on the if statement to do this refactoring.
  • Package names are linked in Javadoc hover and view: You can now click individual package names displayed in the header of the Javadoc hover or the Javadoc view to see the package Javadoc.
  • Javadoc and Declaration view indicate when out of sync: The Javadoc and Declaration view now indicate when their content is no longer in sync with the current selection.
  • Only one JUnit (4.11): The org.junit bundle has been updated to JUnit 4.11. At the same time, our good old friend org.junit_3.8.2 has been retired, and the org.junit4 compatibility bundle has also been removed. Your Require-Bundle: entries should just point to org.junit;bundle-version="4.11.0" (or an earlier version, if you like). Note that JUnit 4 still contains the JUnit 3 APIs. If you need org.junit_3.8.2 back for whatever reason, you can still get it from Orbit.
  • Improved evaluation of generics while debugging: Significant improvements have been made in the debug evaluation engine to support the use of generics. This impacts the use of conditional breakpoints, the display view, the expressions view, and the inspect/display/execute actions. Previously, evaluations acting on classes with generics would sometimes encounter compilation errors.
  • API to contribute location information for non-standard JRE / JDK libraries: JDT Debug now provides an extension point org.eclipse.jdt.launching.libraryLocationResolvers that you can use to contribute location information for non-standard JRE / JDK libraries. For example, this extension point can be used to provide Javadoc and source locations for JARs in the ext location of a JRE. Extenders must provide an implementation of org.eclipse.jdt.launching.ILibraryLocationResolver which can provide package roots, source paths, Javadoc locations and index locations for a library.
  • PDE:
  • API Tools Analysis and Freeze tasks can run with unresolved bundles: The API Tools Analysis and API Freeze Ant tasks will now process bundles with resolver errors such as missing dependencies. This means you can now get analysis results for an incomplete product. The Ant tasks produce reports based on a reference baseline and a profile. Previously both the baseline and the profile had to describe complete products. Any bundle that had resolver errors due to missing dependencies would be skipped. Now these bundles will be processed. Resolver errors can affect the results, therefore a list of resolver errors is included in the XML output and warnings are added to the HTML report. To return to the old behavior of skipping unresolved bundles, you can set processunresolvedbundles="false" on your Ant task.

New in Eclipse SDK 4.2.2 (Mar 1, 2013)

  • Bug fix - Many broken shortcuts in multi-page editors

New in Eclipse SDK 4.3.0 M5 (Feb 4, 2013)

  • The following projects have changed:
  • apitools/org.eclipse.pde.api.tools.tests
  • bundles/org.eclipse.equinox.p2.engine
  • bundles/org.eclipse.equinox.p2.ui.sdk.scheduler
  • features/org.eclipse.sdk.examples-feature
  • org.eclipse.debug.ui
  • tests/org.eclipse.core.tests.resources
  • tests/org.eclipse.team.tests.cvs.core
  • ui/org.eclipse.pde
  • ui/org.eclipse.pde.ui.tests
  • The build contains commits that mentioned these bugs:
  • Bug 234149: [Project Sets] referenceStrings in ProjectSetImporter#importProjectSet needs to be cleared per-provider (FIXED)
  • Bug 370649: ResourceTest not stable on JRE 7 (FIXED)
  • Bug 381428: Test failure TargetDefinitionResolutionTests.testClassicInstallResolution (FIXED)
  • Bug 398711: NPE in AbstractTreeViewer.getSelection trying to select non-expanded nodes (FIXED)
  • Bug 399287: Widget is disposed exception if field editor left open when resuming from a breakpoint (FIXED)
  • Bug 399375: Test failures in ResourceMapperTests (NEW)
  • Bug 399445: org.eclipse.pde plugin version is 3.7.0 in Kepler & Juno, but 3.7.2 was released in Indigo. (FIXED)
  • Bug 399482: Javadoc test failure: Problem in IProfile (FIXED)
  • Bug 399483: Test failures in recent builds (FIXED)
  • Bug 399509: Intermittent test failure CVSWorkspaceSubscriberTest.testMarkAsMergedOnBinaryFile on Mac (NEW)
  • Bug 399518: ProjectSetImporterTests: testImportProject and testBug234149_aFewProviders fail in I20130122-0800 (FIXED)

New in Eclipse SDK 4.3.0 M4 (Dec 15, 2012)

  • Platform:
  • Performance enhancements
  • SWT for GTK3
  • Support for the Ant augment task
  • JDT:
  • Paste direct to a new stacktrace console
  • XML DOM logical structures
  • Quick assist to combine Strings
  • Option to inherit null annotations
  • Leak analysis respects well-known utilities
  • PDE:
  • New import package quick fixes

New in Eclipse SDK 4.2 M7 (May 5, 2012)

  • New high resolution icon
  • Lightweight refresh enabled by default
  • Trim dragging (4.2 only)
  • Trim styling (4.2 only)
  • CSS-based Theme changed event
  • Changes to CSS Extension Points
  • Ant updated to 1.8.3
  • Add all known buildfile types to Ant view
  • Debug tracing
  • Breakpoint view sorting
  • JDT:
  • Content assist in package-info.java
  • Enhanced diagnostics for detection of incomplete switch statements
  • Bracket matching improvements in Java editor

New in Eclipse SDK 4.2 M3 (Dec 12, 2011)

  • JDT:
  • Javadoc hover shows parameter annotations
  • Annotation-based null analysis
  • PDE:
  • Custom target locations
  • Platform:
  • Tree Cursor
  • VoiceOver context menu
  • Shortcut for context menu on the Mac
  • Filters in CVS Sync View
  • Flexible viewer refactored
  • Welcome is back (4.2 only)
  • Refactored Eclipse 4 Event API (4.2 only)
  • Equinox:
  • Update to Jetty 8 and Servlet 3.0

New in Eclipse SDK 3.3.0 (Jun 30, 2007)

  • Eclipse on Vista
  • New Eclipse WPF port
  • Quick access
  • A new look
  • Eclipse has a new default presentation. Some of the key features of this presentation are:
  • New Minimize/Maximize behavior. The new 'Minimize' behavior is to move the view stack to the nearest trim area, showing a 'Restore' button along with the icons for the views in the stack. When in the trim, clicking on a view icon will show the view as a fast view. Minimized stacks can be drag and dropped to new locations along the workbench trim. Maximization of any stack triggers minimization of all others. Maximizing an editor now maximizes the entire editor area, allowing you to view multiple editors side-by-side while maximized.
  • New workbench tab treatments. Workbench tabs have a new color scheme based on your system title background color, and unselected tabs now also have rounded corners to match the appearance of selected tabs. When tabs become crowded, they now maintain their icon and no longer show an ellipsis in order to maximize the amount of useful information.
  • Improved resource selection dialog
  • All plug-ins are now signed
  • Hiding the window toolbar
  • Working sets for the Project Explorer
  • Patch wizard improvements
  • Compare editor improvements
  • Compare Structure in Outline view
  • You can now view the structure pane of a compare editor in the Outline view. To enable this, go to the General > Compare/Patch preference page and check Show structure compare in Outline view when possible. Selecting structure elements in the Outline view will scroll the content pane in the Compare editor to reveal the change in the selected element.
  • Long resource paths on Windows
  • Open files with other editors
  • Forms enhancements
  • Platform level proxy and SSH2 settings
  • Keys preference page improvements
  • Editor area drag and drop
  • Properties view make over
  • Console launcher for Windows
  • Easier help navigation
  • Help search term highlighting
  • Categorized help search
  • Print multiple help topics
  • Cheat sheet improvements