Micronaut Framework 3.7.0 Released!
by Sergio Del Amo CaballeroThe Micronaut team is excited to announce the release of Micronaut framework 3.7.0!
This release introduces a lot of new features to the Framework. We’ll walk through the details of those features below.
Micronaut Spring
Since the creation of the Micronaut framework, we have seen interest from teams who want to use Micronaut modules with a Spring application or consume Spring libraries from a Micronaut application.
We have good news for both use cases:
- Micronaut Spring Boot Starter makes it easy to use Micronaut modules inside a Spring application. To learn more, please review our guide that shows how to use Micronaut Data JDBC from a Spring Boot Application.
- Sharing Libraries between Spring and Micronaut is easier with support for the Spring
@Import
annotation.
Moreover, the latest version of Micronaut Spring updates to Spring 5.3.23.
Object Storage
Micronaut Object Storage, a new module, provides a uniform API to create, read and delete objects in the major cloud providers.
In this initial release, we support Amazon S3, Azure Blob Storage, Google Cloud Storage, and Oracle Cloud Infrastructure (OCI) Object Storage.
We wrote a guide that shows how to use Micronaut Object Storage with Amazon S3.
Micronaut CRaC
A new module, Micronaut CRaC, adds support for CRaC (Coordinated Restore at Checkpoint) to the Micronaut framework.
The CRaC (Coordinated Restore at Checkpoint) Project researches coordination of Java programs with mechanisms to checkpoint (make an image of, snapshot) a Java instance while it is executing. Restoring from the image could be a solution to some of the problems with the start-up and warm-up times.
Micronaut Gradle Plugin
The latest version of the Micronaut Gradle Plugin allows you to specify GraalVM releases URL.
We have also released Micronaut CRaC Gradle Plugin. This new plugin contributes docker-related tasks (dockerBuildCrac
and dockerPushCrac
), which allow you to generate a docker image containing a CRaC enabled JDK and a pre-warmed, checkpointed Micronaut application.
Core
Micronaut core has several improvements:
- If you want complete control of where your application loads configuration from, for example, due to security restrictions, you can disable the default PropertySourceLoader implementations by calling
ApplicationContextBuilder::enableDefaultPropertySources(false)
when starting your application - Better
java.time
conversion for YAML configuration - Client SSL inner configuration is Bootstrap context compatible
UriBuilder
methodsqueryParam
andreplaceQueryParam
ignore null values- It is possible to stop the Netty server without stopping the Application context
- You can declare beans at runtime using interfaces
- You can mark static methods as
@Executable
- A big HTTP client refactor
Micronaut Launch and CLI
Micronaut Launch and Micronaut CLI offer new features:
- JUnit Params
- Amazon API Gateway HTTP Feature
- Object Storage AWS
- Object Storage Azure
- Object Storage GCP
- Object Storage Oracle Cloud
Module Upgrades
Micronaut Azure
A new module Micronaut Azure Cosmos eases working with Azure Cosmos DB, a managed NoSQL database for modern app development.
The latest version of Micronaut Azure adds support for StorageSharedKeyCredential
.
Micronaut AWS
The latest Micronaut AWS adds a new module to ease Cloud Watch Logging.
Micronaut AWS Lambda triggers a new event – AfterExecutionEvent
. For example, you can register event listeners to perform additional tasks after handler execution.
Latest AWS SDK
It updates to:
- Alexa ASK SDK
2.44.0
- AWS Java SDK v1 to
1.12.301
- AWS Java SDK v2 to
2.17.271
- CDK Lib to
2.41.0
Micronaut GCP
Micronaut GCP updates several transitive dependencies:
com.google.auth:google-auth-library-oauth2-http
to1.11.0
com.google.cloud.functions:functions-framework-api
to1.0.4
com.google.cloud:google-cloud-core
to2.8.12
com.google.cloud:google-cloud-pubsub
to1.120.16
com.google.cloud:google-cloud-secretmanager
to2.3.4
Micronaut Oracle Cloud
Micronaut Oracle Cloud updates to Oracle Cloud 2.41.0. Oracle Cloud SDK was incorrectly exposing several transitive dependencies – commons-codec
, commons-io
, and commons-logging
. The latest Oracle Cloud SDK version no longer exposes those dependencies. If you use those dependencies, you will need to add them directly to your build file.
Additionally, the latest version of Micronaut Oracle Cloud adds support for the Oracle Cloud (OCI) Logging service
Micronaut Test
Micronaut Test updates several transitive dependencies:
- JUnit from
5.8.2
to5.9.0
- Mockito from
4.6.1
to4.8.0
- REST-assured from
5.1.1
to5.2.0
- Mockk from
1.12.4
to1.12.8
- KoTest 5 from
5.3.0
to5.4.2
Micronaut Test Resources
Micronaut Test Resources adds support for Hibernate reactive and MQTT v5. Moreover, it lets the user choose a custom DB name and tweak database parameters.
Micronaut Security
Micronaut Security updates Nimbus JOSE + JWT to 9.25
.
Micronaut Views
Micronaut Views updates JTE to 1.11.0
, and builds the module with Micronaut framework 3.6.3
.
Micronaut Reactor
Micronaut Reactor updates to Project Reactor 3.4.23
.
Micronaut Tracing
Micronaut Tracing updates several transitive dependencies:
io.opentelemetry:opentelemetry-bom
to1.18.0
io.opentelemetry.contrib:opentelemetry-aws-xray
to1.17.0
io.zipkin.brave:brave-instrumentation-http
to5.14.0
com.google.protobuf:*
to3.12.6
io.grpc:*
to1.49.0
Micronaut Microstream
Micronaut Microstream REST API was updated to use Micronaut Serialization.
Micronaut MongoDB
The latest version of Micronaut MongoDB adds the ability to add custom command listeners and custom connection pool listeners to Mongo client settings.
Micronaut Groovy
Micronaut Groovy updates to GORM for Neo4J 7.3.0
and Apache Groovy 3.0.13
.
Micronaut Open API
Micronaut OpenAPI continues to be an example of community contributions. Many thanks to @altro3, who has fixed many bugs and contributed improvements. For example, resource localization for the UI, and changes to SwaggerUI to avoid loading external resources.
Micronaut Hibernate Validator
Micronaut Hibernate Validator updates to Hibernate Validator 6.2.5
. In addition, it exposes glassfish-jakarta-el
as a runtimeOnly
transitive dependency instead of org.glassfish:javax.el
.
Micronaut JMS
Micronaut Java Messaging Service (JMS) published the 2.1.0
release, which contains several improvements, bug fixes, and a major overhaul of the module’s build.
Micronaut R2DBC
Micronaut R2DBC updates transitive dependencies to:
com.oracle.database.r2dbc:oracle-r2dbc
to1.0.0
com.oracle.database.jdbc:ojdbc11
to21.7.0.0
org.postgresql:r2dbc-postgresql
to0.9.2
io.r2dbc:r2dbc-pool
0.9.2
Micronaut Micrometer
Micronaut Micrometer updates:
io.micrometer:micrometer-bom
to1.9.4
io.dropwizard.metrics:metrics-core
to4.2.12
Micronaut Neo4J
Latest version of Micronaut Neo4J updates Neo4J driver to 4.4.9
.
Modules built with the latest Micronaut Version
We upgraded multiple modules to be built with Micronaut 3.6.x
: Micronaut RSS, Micronaut MQTT, Micronaut Problem+JSON, and Micronaut Reactor.
BOM and Gradle Version Catalog
Several modules publish a BOM (Bill of Materials) module and/or use a Gradle Version Catalog: Micronaut Discovery, and Micronaut Multi-tenancy.
Community Feedback
We want to thank all the contributors; the community is essential to the Framework’s success. Please try upgrading your existing applications to this new minor release and report any issues you find! See the documentation for further details and use GitHub to report any issues.