Micronaut 3.8.0: Build Scalable Applications with the Updated CRaC Feature
Published on Jan 14, 2023
A week after Micronaut 3.7.5 was released, the Micronaut Foundation released Micronaut 3.8.0. New features in this version include support for GraalVM 22.3.0, @RequestBean annotations for Java records, and a new command for creating Micronaut AWS Lambda projects. Micronaut Data, Micronaut Security, Micronaut CLI, and Micronaut Launch, as well as improvements to the Micronaut Maven Plugin, are also included in this release.
This release introduces the ability to use @RequestBean annotations on Java records. Prior to this release, the only way to bind values to the HttpRequest, @PathVariable, @QueryValue, or @Header fields was to use a POJO as a method parameter and mark it with @RequestBean. As part of this release, a new CorsFilter class has been added that sends a 403 status code to origins other than localhost when the application is running on localhost. The purpose of this is to protect users from “drive-by localhost attacks” by enabling CORS from any localhost origin.
Moreover, this release adds support for Azure Cosmos and provides Micronaut Data with two new ways to manage multiple tenants. Meanwhile, Micronaut Security has been enhanced with some ahead-of-time optimizations that speed up the response time and add support for Proof Key for Code Exchange (PKCE). In addition, Micronaut Security has enabled OpenID Connect metadata to function without interrupting the Netty event loop.
This release also introduces a new command, mn create-aws-lambda, which allows users to create a Micronaut AWS Lambda project interactively. There are now more features available in Micronaut Launch and CLI, including support for gitlab-workflow-ci, azure-cosmos-db, localstack and aws-alexa, aws-cdk. Additionally, the Micronaut Maven Plugin has been improved with faster start/stop of test resources, the ability to choose a namespace for shared test resources, and the addition of CRaC packaging for checkpointed Docker images. Micronaut developers will now have access to even more tools to create strong, scalable applications with these updates.
A new version of the CRaC (Coordinated Restore at Checkpoint) feature has also been released. HikariCP, a popular JDBC connection pool, has been added to the update. The Micronaut Gradle CRaC Plugin and Micronaut Maven Plugin now allow developers to create Docker images with CRaC-enabled JDKs and pre-warmed, checkpointed applications. AWS Lambda SnapStart can now be used in conjunction with Micronaut CRaC. Developers will be able to create more efficient and scalable applications using Micronaut as a result of these updates.
Nevertheless, this release includes updates for its cloud offerings, including support for Amazon Web Services, Microsoft Azure, Google Cloud Platform, Oracle, and Reactor. Micronaut AWS has been updated with the ability to change the endpoint for the AWS Services SDK. Micronaut Azure has been updated to the latest version of the Azure SDK and Azure Functions Java. Micronaut GCP, on the other hand, has added support for Google Cloud Events and updated dependencies such as Google Cloud PubSub and Google Secret Manager. The Oracle Cloud Infrastructure (OCI) SDK v3 has been added to Micronaut Oracle, and Project Reactor 3.5.0 has been added to Micronaut Reactor.
Micronaut Test has also received updates to its dependencies, including JUnit and Mockito.
In addition, Micronaut Test Resources has added support for wait strategies and a method for retrieving the TestResourcesClient from an ApplicationContext. The updates will enhance the functionality and performance of applications built using Micronaut.
Those interested in evaluating Micronaut 3.8.0 may also build applications using Micronaut Launch and read reference material.
Google Kubernetes Engine Adds Multishares for Filestore Enterprise
Google Cloud has made Filestore Enterprise Multishares for Google Kubernetes Engine (GKE)…
Geoffrey Hinton publishes new deep learning algorithm
Geoffrey Hinton, professor at the University of Toronto and engineer at Google Brain, recently…