facebook
Brian Fernandes
Director of Customer Engagement - Loves technology and almost everything related to computing. Wants to help you write better software. Follow at @brianfernandes.
Posted on May 25th 2021

One of our biggest MyEclipse releases in recent times, MyEclipse 2021.5.24 has just left the building. This release has updates and new additions to almost every supported feature area. Here’s what you have to look forward to in this version:

Java 15 and 16 Support

Development with Java 15 and 16 language features is now supported. Text blocks, Records (including a new Record wizard), pattern matching for instanceof, support for sealed classes and interfaces, etc., are now supported in the editor.


Text Blocks


New Record Wizard


Sealed class support

Visit these pages for more examples of supported Java 15 and Java 16 code. To access some of these capabilities, you may need to enable preview features by going to the Java Compiler page under project properties, and checking, “Enable preview features for Java 16”. This can also be set at the workspace level under preferences.

Note: MyEclipse bundles Java 14, you would need to manually configure an updated JRE to code using Java 15/16.

Everyday Coding Enhancements

Content assist for methods will now insert best guessed parameters too, and most likely save you some time. You will also find general content assist behavior improved, as by default it will intelligently overwrite code with selected proposals instead of inserting them. Several new quick fixes have been added across the board.

For faster searching, a new parallel index search is now enabled by default, taking advantage of available hardware to improve performance.

Running a program that takes dozens of arguments, sometimes too many for the command line? If using Java 9 or higher, you can now specify arguments using an argfile in any Java based debug configuration.

We all love NullPointerExceptions, don’t we? Wouldn’t it be great to know which variable was actually null? Well, thanks to JEP 358, the culprit will now be named and shamed in the exception message. You need to use Java 14 or higher to launch, and check the-XX:+ShowCodeDetailsInExceptionMessages box in the debug configuration.

If you’re one who likes Java code cleanups there were dozens added.

The integrated version of JUnit has been updated to version 5.7.1.

The last edit location is a feature many don’t use, but can make such a difference to your coding productivity. Instead of just remembering the last edit location, the last 15 locations are now persisted. Use [Ctrl + Alt/Ctrl + Opt] + Left/Right Arrow to go backwards and forwards through your edits, and if you haven’t tried this feature before, now’s a good time to start!

On Windows, you can scroll horizontally using Shift + Mouse Wheel and touchpad gestures—this was already possible on other OSes.

If you’ve ever wanted to do a repeated search in the console view, you now can with the Ctrl + K & Ctrl + Shift + K.

Server Connectors

Tomcat

We have a new connector for Tomcat 10, and this server supports the latest enterprise Java spec, Jakarta EE 9 (more on that later). Do note that if you want to deploy older applications to Tomcat 10, you’ll have to migrate them first, or use its legacy converter. Read more here.

We’ve added a new embedded version of Tomcat 9 for immediate use in MyEclipse. Besides this, our existing embedded Tomcat 8.5 server has been upgraded from 8.5.9 to 8.5.66—this embedded 8.5 server will be removed in a future release.

Red Hat Family

We have new connectors for Wildfly 21, 22, 23 and JBoss EAP 7.4 too. Wildfly 23 will support Jakarta EE 9 deployments in a future release of MyEclipse.

Spring

This release includes a couple of really cool Spring features we’d like to highlight. First, there’s a new wizard that allows you to add Spring Boot starter modules to existing Spring Boot projects. Select Spring > Add Starters from the context menu of an existing Spring Boot project.

If you have Docker running locally, you can build docker images from your workspace Spring Boot projects by simply dragging and dropping them into the Boot Dashboard. You can then run your application on Docker, even debugging it directly within the container. You can add Spring Boot DevTools to your project to speed up change cycles. More details here.

Jakarta EE 9

Enterprise Java support has always been at the core of MyEclipse, and we’re thrilled to be able to continue providing this support through the next level of Java in the Enterprise—the Jakarta EE 9 platform. This release includes experimental support for Jakarta EE 9—almost all of our new project wizards will allow you to choose this version when creating a project. Projects created with this version will include updated libraries and reference corresponding Jakarta EE 9 schemata.

As this is a preview release, some support is still not available—our form based editors do not support this version, and our web services wizards (JAX-WS/RS) and JPA support have yet to be updated. We will continue to focus on this area in future MyEclipse releases.

New Editors and Framework Support

The core of an IDE is its editors, and this release has updates, as well as brand new editors for a whole slew of web dev file types:

  • HTML/XHTML
  • JavaScript/JSX
  • TypeScript/TSX
  • CSS, SCSS, SASS, LESS
  • JSON
  • YAML/RAML
  • XML, XSL, XSD, DTD

Several of these editors like JSON, YAML and XML have built-in schemas to provide technology specific features like content assist and validation where appropriate.

Language Server Tech

The editors are based on Language Server technology, and will provide the most capable, up-to-date, efficient, and standardized coding experience going forward. Capabilities like validation, content assist, hover info, outlines, refactoring, navigation and even code analysis are all serviced by the language server protocol, so we’re talking about rich support for each of the types mentioned above.

These editors have been added to MyEclipse through the continued development and refinement of the preliminary integration of Eclipse’s WWD project in the MyEclipse 2020.9 release last year. We’ve been paying attention to performance as well, and have ensured that our integration doesn’t come at the cost of IDE performance, with changes in how the language servers are initialized as you work on different files types across your workspace.

Accessing the New Editors

We’ve set up IDE defaults so that your files will automatically open in the correct editors, no additional steps required. Some editors like the MyEclipse visual HTML/JSP designers are now no longer the default for their corresponding file types, but they can be accessed through the Open With context menu. Conversely, while newer editors are available for file types like XML, XSD, XSL, etc., we’ve retained the older MyEclipse editors as default in these cases for now.

JavaScript

The new JavaScript editor is based on the language server tech we mentioned above, replacing our dated Tern based support. The editor now supports ECMAScript 2020 out of the box, and the support extends to JavaScript in JSP files too. This is a huge jump from ECMAScript 2015 that we natively supported in MyEclipse until now. So everything from async and yield, to the new nullish operators and optional chaining, are now fair game for the JavaScript editor.

TypeScript

The new TypeScript editor supports TypeScript 4.1, again, a huge jump from version 2.5 natively supported in MyEclipse.

Note: For JavaScript and TypeScript, ESLint and TSLint are both supported and enabled based on the configuration files present in the project. Because TSLint is deprecated, we’ve added special intelligence to continue to respect TSLint configuration files when required, but we would recommend moving to an ESLint based configuration. Please see this document for more details.

Angular

Angular support in MyEclipse has been given a major refresh. We now support the most recent versions of this framework, including Angular 12. The new project wizard has been enhanced, and several new wizards have been added. Content assist, validation and navigation in Angular templates has been significantly improved. Of course, you can still start and stop Angular projects from the Servers view, and we’ve fixed a bug that prevented CodeLive from working with Ivy built components.

React

There’s a new React project wizard that makes it easy to create a blank React project, or one with the Next.js framework. And you can choose whether you’d like to use JavaScript or TypeScript too.

Quarkus

With an update to version 4.19.0 of JBoss Tools, our integrated Quarkus and OpenShift tooling has also received updates. When creating a new Quarkus project, if the extension(s) selected support Codestarts, your project will be initialized with example code. 

Instead of using an application.properties file, you can use an application.yaml file in more recent versions of Quarkus. Simply create this file manually and you will get content assist within. 

You can also specify environment variables in run/debug Quarkus configurations.

OpenShift

The OpenShift Application Explorer is now based on odo 2.x, which allows development to be based on a devfile. These components may expose start projects, i.e. sample code that will initialize your empty project. Specific content assist is also available for devfile.yaml files.

For clusters which use more enhanced authentication infrastructure, you can now still log in with the wizard, which will pop out an embedded web browser as required.

Key Fixes & Enhancements

VisualVM

Our VisualVM integration was MIA for a few releases, but by popular demand, we now have a fresh new integration of the very latest 2.0.7 version.

macOS Big Sur

For those of you on macOS Big Sur, you’ll be happy to know that all UI glitches, missing capabilities and bugs have been addressed, so this version of MyEclipse works out of the box on Big Sur. A list of issues fixed can be found here.

Based on Eclipse 2021-03

We’ve jumped three Eclipse versions since the last MyEclipse release, which was based on Eclipse 2020-06, so there are literally hundreds of enhancements in the product as a result. For more details, check the new and noteworthy pages.

As always, we’ve made dozens of fixes across the product in response to issues reported by our users.

Differences of Note between MyEclipse 2021 and Prior Releases

Do we still need CodeMix?

As some of you might be aware, CodeMix could be installed into MyEclipse to add up-to-date support for all the language server technologies we discussed above. CodeMix has now been EOLed, but the great news for MyEclipse users is that the support now inbuilt in MyEclipse replaces what CodeMix would provide. Frameworks like Vue that we don’t yet support natively in MyEclipse will be picked up in subsequent releases. Going forward, we will continue to provide and improve on modern web support in MyEclipse itself.

CodeMix is no longer compatible with MyEclipse and cannot be installed into this version.

Project Level Validation

Project level validation for JavaScript, TypeScript and HTML has been removed. We found that this validation, especially in the case of JavaScript, was often not desired by our users and time consuming, despite our efforts to make it performant across the years. These files will be validated when you open and edit them, with the newer language server tech which provides a much higher quality of validation.

Editor Preferences

Several editor, typing and coloring preferences for these file types have been removed. We found that this level of customization was seldom used, with most users making their settings at the global level. Global preferences will now apply to these types.

We Couldn’t Have Done It Without You

Thank you to the many loyal MyEclipse users who contributed suggestions. We are really proud of this release and feel like it brings a lot of value. Remember, all MyEclipse licenses include free updates to the latest version, so go ahead and get yours today.

While you’re at it, check out CodeTogether. Our latest offering allows you to live share your MyEclipse IDE for instant collaboration with others. They can code with you from their own IDE (even if it’s a different version or a different IDE altogether), or from a browser. A free plan is always available. 

For any questions, comments, or suggestions, please reach out to us via our forums or TwitterHappy coding!