JDT Java Support for Java 15 & 16
The updated Java support comes with several enhancements to the language and special focus on simplifying code. There are a lot of new features, but here are some of my favorites.
Record type
Now you can use record type to help create immutable Java objects. So instead of writing immutable objects in this way:
It can be simplified by just writing:
Pattern matching type checks
This feature also makes it easier to write compact code by removing the need to cast a variable after checking if it’s from a certain type.
For example:
The pattern matching simplifies it by introducing a new variable:
Java Editor
Quickfix for replacing String concatenation with String.format
Quickfix to creating missing methods in method references
Insert best guessed method parameters
Quick assist to create try-with-resources
Add catch clause to try-with-resources assists
Parallel index search
A new preference option has been added and enabled by default:
Preferences > Java > Enable parallel index search. Depending on the available hardware, this option should improve performance for all index based Java search operations, but could also lead to possible regressions.
JUnit 5.7.1 Support
JDT has been updated to support JUnit 5.7.1 which contains several bug fixes and the following new features:
- The user guide now explains Nested Tests in more detail.
- New utility method in
TestInstancePreDestroyCallback
helps to ensure all test instances are processed when used in conjunction with @Nested
tests. JAVA_17
has been added to the JRE
enum for use with JRE-based execution conditions.
Now you will be able to scroll horizontally in text editors using Shift+Mouse Wheel and touchpad gestures on Windows. This feature already works in both Linux and Mac.
Running & Debugging
Anonymous class instance in evaluation
Termination of child processes of launched OS processes can be configured
Direct Integration with Language Servers
Angular 11, TypeScript 4.1, React and more
We are migrating to use direct language servers for multiple technologies including Angular 11, TypeScript 4.1, React (JSX, TSX, embedded HTML), ESLint (for JavaScript and TypeScript) and Kubernetes. In addition, we are bringing into MyEclipse some of the Angular Smarts from CodeMix, such as more advanced project wizards. A more direct integration with language servers provides a benefit over the CodeMix/Angular IDE approach in terms of overhead and provides a more maintainable approach for direct support inside MyEclipse. Our goal is to provide a longer term solution as part of MyEclipse that is viable for all our customers, not just for those that decide to also add CodeMix on top, unifying the solution.
Smarter Editors
Thanks to Language Servers, we will get editor smarts like Code Validation (diagnostics, markers), Code Completion, Hover, Outline, Rename Refactoring, Jump to Declaration, Find References, Color Preview, along with other features that are part of the Language Server Protocol. These editor smarts are available for the following technologies:
- HTML
- CSS, SCSS, SASS, LESS
- JavaScript / ECMAScript
- TypeScript
- JSON (including schema support)
- YAML (including schema support, Kubernetes schema built-in)
- XML (including schema support), XSL, XSD, DTD
Quarkus Tools
Extension CodeStarts
New Quarkus projects can be generated with example code (Extension CodeStarts) when the extension supports it.
Environment variables in run/debug Quarkus configurations
Using environment variables is one way to override property values in the Quarkus properties file. It is now possible to specify environment variables in a run/debug Quarkus configuration. Additionally, Quarkus will support configuration through YAML files with content assist and syntax validation.
OpenShift
Log in to Developer Sandbox from inside MyEclipse
Browser based login to an OpenShift cluster
It is now possible to log in to the cluster through an embedded web browser.
Devfile based deployments
The Application Explorer view is now based on odo 2.x, which allows deployments to be based on devfile (developer oriented manifest file).
Updated Server Connectors
- WildFly 23 passes the TCKs for the Jakarta EE 9.0 Full Platform and the Web Profile. MyEclipse will also support WildFly 21 and 22.
- JBoss EAP 7.4 includes new enhancements in security, server management, developer features, and more.
- Tomcat 10 implements the Servlet 5.0, JSP 3.0, EL 4.0, WebSocket 2.0 and Authentication 2.0 specifications (the versions required by Jakarta EE 9 platform).