Early Access Program IntelliJ IDEA

IntelliJ IDEA EAP 6: Automatic Migration From Java EE to Jakarta EE, Shared Indexes for Spring Boot Projects, and More

IntelliJ IDEA 2021.2 EAP 6 is now available! You can get the new build from our website, through the free Toolbox App, or as a snap (for Ubuntu).

In this final EAP before Beta, we have focused on some framework-specific updates. These include a new refactoring to simplify and speed up the migration of Java EE usages to Jakarta EE, automatic download of shared indexes for new Spring Boot projects, microservices diagrams, and more. This build also conveniently groups on-save actions in one place and offers a reworked structure view for diagrams.

Let’s learn more about the new features.

Frameworks and technologies

Automatic download of shared indexes for new Spring Boot projects

Shared indexes help to reduce the indexing time and how long it takes to open a project. Starting from this EAP, IntelliJ IDEA will automatically download the shared indexes of your JDK and Maven libraries when creating a new Spring Initializr project. The checkbox controlling this behavior is located on the second screen of the new project wizard.

Frameworks - Automatic download of shared indexes

This option is unavailable if you have disabled Shared Indexes in Settings/Preferences | Shared Indexes.

Automatic migration from Java EE to Jakarta EE

If you want to migrate a project or module from Java EE to Jakarta EE, you can do so quickly and painlessly with the new Migrate refactoring. To initiate migration, go to Refactor | Migrate …, indicate whether you want to migrate the whole project or a particular module, and click Run. The Refactoring Preview will then appear, showing all the found usages of Java EE imports. When you have checked through and are ready to finalize the process, click Do Refactor.

Frameworks - Migration from Java EE to Jakarta EE

Support for JPA Entity Graph

With JPA 2.1, you can define an Entity Graph with the @NamedEntityGraph annotation, which allows you to specify a unique name and the attributes (@NamedAttributeNode) that will be included upon loading the entity. When working with the attributes in the editor, you can use code completion, detect and fix errors, and quickly navigate to the related entity by clicking on an attribute.

Frameworks - Entity Graph

Support for cache annotations in Micronaut and Quarkus

Cache annotations for Micronaut and Quarkus are now supported in the IDE. You can use @Cacheable, @CachePut,and @CacheInvalidate in Micronaut. The value of each annotation refers to a particular cache. It is possible to navigate between cache name usages via the gutter icons. When you need to find cache usages, you can use Find usages. The Rename refactoring also works for cache identifiers.

Frameworks - Support for cache annotations in Micronaut and Quarkus

Better microservice navigation support in JavaScript and TypeScript

We’ve significantly improved navigation for URLs in JavaScript and TypeScript, both on the client-side and server-side.

For client-side code, the following improvements are available:

  • If you work with Angular or AngularJS, you can use completion for the endpoint URLs detected in the project in HttpClient and $http methods.
  • For Axios, completion works for the endpoint URLs in the methods of a new Axios instance.Frameworks - Better microservices support in JS/TS

For server-side, Express users can enjoy these updates:

  • Route handlers are shown in the Endpoints tool windowFrameworks - Better support for microservices JS/TS
  • It is possible to search for Express route declarations via Navigate| URL Mapping….Frameworks - Better support for microservices in JS/TS

Microservices diagram

You can now display interactions between microservices in a diagram. You can invoke this diagram by clicking the Services diagram icon in the top-right corner of the Endpoints tool window.

Frameworks - Microservices diagram

If you click on an arrow that connects the blocks in the diagram, IntelliJ IDEA will open the Find tool window, where you’ll be able to track which client calls a particular service. It is also possible to navigate to this call in your code.

Frameworks - Microservices diagram

The diagram is available in Java and Kotlin projects if you use Spring, Micronaut, Quarkus, or Helidon frameworks.

The Microservices diagram is our initial attempt to present how microservices are connected. We’d appreciate your feedback!

Protocol Buffers plugin maintained by JetBrains

Protocol Buffers is Google’s cross-platform library for serializing structured data. The dedicated Protocol Buffers plugin now comes out of the box with IntelliJ IDEA Ultimate, and the JetBrains team will fully maintain it. We want to thank the previous maintainer – Jeremy Volkman – for working on this plugin.

If you are using IntelliJ IDEA Community Edition, you can still download and install Protocol Buffers via Preferences/Settings | Plugins | Marketplace.

gRPC endpoints displayed in the Endpoints tool window

IntelliJ IDEA Ultimate now supports the gRPC framework. In this EAP, we introduced the first feature for working with it – the gRPC endpoints display in the Endpoints tool window. Stay tuned as more features are coming in future versions.

Frameworks - gRPC

User Experience

Diagrams structure view

Diagrams in IntelliJ IDEA have become easier to use! The Structure view now shows a map of your diagram with a small preview of the selected block and its neighbors. It’s really helpful when you’re working with huge diagrams that contain dozens of elements. The new Structure view supports scaling, canvas moving, magnifier mode, layout change, and exporting into an image.UX - Structure view of a diagram

Actions on save

Did you know that you can customize how IntelliJ IDEA behaves when saving a project? Some of these on-save actions were already available via the ⌘S / Ctrl+S shortcut.

In this EAP, we’ve gathered all possible on-save actions together in Preferences / Settings | Tools | Actions on Save. You can easily configure all of them there – just tick the checkbox next to the necessary action, and IntelliJ IDEA will trigger it on any save, including autosave and explicit save actions.

UX - Actions on Save

You can also adjust the settings for any action more precisely. To do so, hover over it, click the configuration link, and fine-tune this action on the related settings page that appears.

UX Actions on Save

These were the crucial changes introduced during our final EAP week. All the other updates included in EAP 6 can be found in the release notes. You can test our new features and share your thoughts in the comments below. If you have any problems, please report them to our issue tracker.

Happy developing!

image description