Quarkus 3.0 Released: Improving Cloud-Native Java Development with Jakarta EE 10 Support

MMS Founder
MMS A N M Bazlur Rahman

Article originally posted on InfoQ. Visit InfoQ

Following six alpha releases, a beta release, and two release candidates, Red Hat has launched the highly anticipated Quarkus 3.0 release this past week. This update brings a host of new features, including support for Jakarta EE 10, MicroProfile 6.0, Hibernate ORM 6.2, and Hibernate Reactive 2.0. Furthermore, the Dev UI has been revamped to be more extensible and user-friendly, showcasing a modernized look and feel. In addition, Quarkus 3.0 introduces an upgrade to SmallRye Mutiny 2.0.0, which now utilizes the Java Flow API instead of Reactive Streams.

The development process began on March 18, 2022, with the ambitious goal of rewriting the entire tree to migrate to the new jakarta.* packages and adopt Jakarta EE 10. The shift to Jakarta EE 10 offers two major benefits: it aligns with the broader Java ecosystem’s move to Jakarta dependencies, enabling easier sharing and compatible implementations; and it introduces CDI Lite and Build Compatible Extensions (BCE) for standard extensions compatible across CDI implementations, benefiting from Quarkus build time optimizations.

Quarkus 3.0 debuts a revamped Dev UI, providing a more extensible and user-friendly experience with an improved look and feel. While not all extensions have migrated to the new Dev UI, the old Dev UI can still be accessed at /q/dev-v1, but it is slated for removal in a future version. A Quarkus YouTube channel playlist demonstrates the new Dev UI, highlighting its features and how to use and extend it.

Quarkus 3.0 upgrades Hibernate ORM from version 5.0 to version 6.2, which brings numerous changes, some of them breaking. The upgrade to Hibernate ORM 6.0 requires some effort and testing, and developers are advised to consult the Hibernate ORM 6.2 update guide for guidance. Hibernate Reactive has also been updated to version 2.0 to maintain compatibility with Hibernate ORM 6.

Quarkus 3.0 enhances the developer experience with improvements to the CLI, Maven and Gradle plugins, including the ability to deploy Quarkus applications to platforms like Kubernetes, Knative, and OpenShift without requiring changes to project dependencies or configuration. It now supports Maven 3.9 and Gradle 8.0, and Maven 3.8.2 is the minimum requirement for Quarkus 3 projects. Examples of CLI commands follow:

$ quarkus deploy
$ mvn quarkus:deploy
$ gradle deploy

Eclipse MicroProfile 6.0 now aligns with Jakarta EE 10 Core Profile and replaces MicroProfile OpenTracing with MicroProfile Telemetry. RESTEasy Reactive, the default REST layer for both reactive and blocking workloads, has been updated with usability enhancements, including the ability to retrieve all multipart parts. Additionally, the OpenTelemetry extension has been revamped to support SDK autoconfiguration, with its configuration namespace changed to quarkus.otel.*. This update simplifies enabling OpenTelemetry for JDBC by only requiring users to set the quarkus.datasource.jdbc.telemetry property to true, without needing to modify JDBC connection URLs.

As active support for Java 11 will end in September 2023 by the OpenJDK community, Quarkus has marked it as deprecated. While core Quarkus functionality will continue to support Java 11 past that date, developers are encouraged to upgrade to Java 17 or later for the best Quarkus experience.

To assist developers in updating their projects to Quarkus 3.0, a comprehensive migration guide has been provided, along with a dedicated Hibernate ORM 6.2 update guide. Quarkus 3.0 also introduces an update tool that can automate most of the tedious work involved in updating projects, including adjusting package names, updating dependencies and configuration files, and upgrading Quarkiverse extensions to be compatible with Quarkus 3.0.

In conclusion, the release of Quarkus 3.0 signifies a major step forward for the Java ecosystem, offering developers an enhanced experience and a myriad of new features and improvements. With a focus on developer experience, performance, and extensibility, Quarkus 3.0 is well-positioned to solidify its place as a top choice for Java developers looking to build resilient and efficient applications in a rapidly evolving technology landscape.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.