IntelliJ IDEA 2022.3 EAP 4: Jakarta EE 10, Hibernate 6.1 Features, Docker Updates, and More
IntelliJ IDEA 2022.3 EAP 4 is out!
It brings a new way to work with projects in WSL2, numerous improvements to working with Jakarta EE 10, Hibernate, Micronaut, the HTTP Client, Docker, and more. This blog post covers these and other updates in detail.
Remote development (Beta)
A new way to work with projects in WSL2
IntelliJ IDEA Ultimate 2022.3 brings an alternative way to work with projects running in WSL2 file systems. Instead of running a full IDE on Windows, your IDE backend will launch directly in WSL2 itself. Then you connect to it the same way you would connect to any remote machine when using remote development in IntelliJ IDEA. This can provide better IDE performance when working with projects in WSL2.
Frameworks and technologies
Jakarta EE 10 support
IntelliJ IDEA Ultimate now provides full support for Jakarta EE 10. You can select it in File | New Project | Jakarta EE and create a project using the new specification versions.
Support for Hibernate 6.1 features
IntelliJ IDEA Ultimate 2022.3 features improved code insight functionality for the JPQL language and supports the latest Hibernate 6.1 APIs, including set operations (union, intersect, and except), filter operations, subquery selects, and set aggregations.
Code insight improvements for Liquibase
We have extended the code insight functionality for working with Liquibase tools. You can now easily create new Liquibase changeset files by invoking File | New | Liquibase Changelog on a db/changelog/ directory.
Also, IntelliJ IDEA Ultimate now provides highlighting, code completion, and validation for Liquibase YAML files and suggests all the available code completion options in liquibase.properties files.
A new way to autowire bean dependencies
With IntelliJ IDEA 2022.3 Ultimate, you can now easily autowire Spring beans right from where you need them. To do this, either use the .autowire postfix template or apply a quick-fix by using the ⌥⏎ /Alt+Enter shortcut on the unresolved variable and selecting the Add dependency… option. The feature also supports CamelHumps matching, so you can just type owRepo to autowire a bean with the OwnerRepository class. This new way to autowire bean dependencies works for Spring, Micronaut, and Jakarta EE CDI.
Improved OpenAPI schema generation
IntelliJ IDEA Ultimate now provides an enhanced user experience when documenting web APIs with OpenAPI specifications. You can now instantly generate an OpenAPI definition for a Spring controller or JAX-RS resource from the Endpoints tool window or by clicking the inlay icon.
The resulting YAML file will also include request and response object schemas.
You can also generate an OpenAPI for the entire module by navigating to the Module context menu in the Endpoints tool window.
Improved navigation and inspections for dependency injection in Micronaut
There’s a new inspection that checks bean injection points and reports missing or ambiguous dependencies.
We’ve improved navigation to injected dependencies and inspections with bean qualifiers (such as @Named, @Primary, and others).
Also, you can now navigate to an injected bean using a gutter icon.
Micronaut Data: improved MongoDB support
JSON fragments are now injected into Micronaut MongoDB query annotations. The IDE also provides code highlighting for operators and parameters and code completion for fields and operators.
The navigation gutter icons are now shown for the Micronaut mapped entity classes and their fields, allowing you to easily open the Database tool window for the mapped collection.
Editing improvements for YAML
There’s a new quick-fix to suppress inspections with a comment in YAML files, including Kubernetes files, OpenAPI specifications, and docker-compose.yml.
We’ve introduced a convenient option to fold multiline comments that make up a block of 3 or more lines and start with #.
Code style improvements for the HTTP Client
The HTTP Client now provides better formatting options for requests with long URLs. You can also use the Put query parameters on separate lines intention action to break the query into smaller fragments on different lines.
To control your preferences regarding HTTP request formatting, we’ve implemented a new option in Settings / Preferences | Editor | Code Style | HTTP Request | Wrapping and Braces.
The HTTP Client now supports script blocks executed before requests. You can generate some data before request execution and put it in the final request using variables.
IntelliJ IDEA Ultimate now also provides the сrypto API, making your code capable of computing the md5 or sha1 hash values for an HTTP request.
For simple cases, the IDE now features a new set of random variables.
Docker executable from WSL without Docker Desktop
As of v2022.3, IntelliJ IDEA supports connections to Docker that run in Windows Subsystem for Linux (WSL). You can set up such a connection in Settings / Preferences | Build, Execution, Deployment | Docker.
New intention action: Pull image
There is now an easy way to pull a required image without running it from Dockerfile, docker-compose.yml, or even from tests using the Testcontainers. Simply call up the context actions (Alt-Enter / ⌥⏎) on the highlighted image name and then select Pull Docker image.
Support for the .dockerignore file type
We’ve introduced full support for .dockerignore files, including code highlighting and completion. These files are now taken into account when you build an image from the IDE.
Support for the heredoc format in Dockerfile files
Here documents allow you to redirect subsequent Dockerfile lines to the input of RUN or COPY commands. IntelliJ IDEA now supports this syntax, so you can use it to generate config files or multiline scripts right in your Dockerfiles.
Docker connections from Docker Contexts
You can now set up additional Docker connections using Docker Contexts if you already have such settings in your Docker config. You can do so by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.
Deprecated Docker Machine removed from the list of supported connections
Since the Docker Machine has been deprecated by Docker, we’ve removed it from the list of connections in Settings/ Preferences | Build, Execution, Deployment | Docker.
If you’re an active Docker Machine user, you can still connect to it with an API URL. You can either get a list of Docker machines and enter the corresponding URL there, or enter the path to the certs folder.
These are the most notable improvements in the IntelliJ IDEA 2022.3 EAP build #4. You can find the full list of updates in the release notes.
Subscribe to Blog updates
Java Best Practices
Good code follows certain rules, and knowing them increases your chances of success. We’d like to share some Java best practices that will help you on your way. We'll cover the must-know tips and tricks, from broad advice on software development to Java- and project-specific know-how. Let's get star…
IntelliJ IDEA 2024.1 EAP 6: Improved Workflow for Logs, Inline Breakpoints, In-Editor Code Review, and MoreEarly Access Program
IntelliJ IDEA 2024.1 EAP 6 is here! This new build is packed with a bunch of updates anticipated for the next major release. Highlights include an enhanced user experience with logs, advanced debugging capabilities, and improved integration with version control systems. You can download the new v…
The New Terminal (Beta) Is Now in JetBrains IDEs
The new terminal (Beta) is now in JetBrains IDEs and will be available in the new UI starting from the 2024.1 version of the IDEs.
‘HelloWorld’ and ‘main()’ meet minimalistic
"Just ignore the terms class, public, static and arg for now; we'll talk about it later". If you have ever mentioned these lines to a new Java student, who is about to execute their first 'HelloWorld' program, know that this is changing. If you are that student, well, congratulations, getting starte…