In Helidon 4.x we have made some changes to APIs and runtime behavior. This guide will help you upgrade a Helidon MP 3.x application to 4.x.

Java 21 Runtime

Java 17 is no longer supported in Helidon 4. Java 21 or newer is required (Java 25 or newer recommended). Please follow the instructions in Prerequisites for proper installation.

Helidon 4 no longer uses Netty. Helidon MP is now running on Helidon WebServer which is based on virtual threads technology, available in Java 21.

MicroProfile 6.0 support

MicroProfile 6.0 enables MicroProfile APIs to be used together with Jakarta EE 10 Core Profile.

MicroProfile specifications

Most of the MicroProfile specifications had relatively minor changes. The exception is Metrics which had substantial changes.

Supported Jakarta EE specifications

Note
Please, read each specification carefully for incompatible changes!

Significant changes

Jandex

Jandex group id was org.jboss.jandex and now is io.smallrye.

Testing

Testing is now in a new package. It was:

<dependency>
    <groupId>io.helidon.microprofile.tests</groupId>
    <artifactId>helidon-microprofile-tests-junit5</artifactId>
    <scope>test</scope>
</dependency>

Now is:

<dependency>
    <groupId>io.helidon.microprofile.testing</groupId>
    <artifactId>helidon-microprofile-testing-junit5</artifactId>
    <scope>test</scope>
</dependency>

And the Java package has changed from io.helidon.microprofile.tests.junit5 to io.helidon.microprofile.testing.junit5

Logging

The Helidon console handler has changed from io.helidon.common.HelidonConsoleHandler to io.helidon.logging.jul.HelidonConsoleHandler.

If you use this handler in your logging.properties you will need to update it and add the following dependency:

<dependency>
    <groupId>io.helidon.logging</groupId>
    <artifactId>helidon-logging-jul</artifactId>
    <scope>runtime</scope>
</dependency>

Conclusion

Please proceed to Helidon MP Introduction to find more information and documentation about each module.