Micronaut Framework 3.6.0 Released!
by Sergio Del Amo CaballeroThe Micronaut team is excited to announce the release of Micronaut framework 3.6.0!
This release introduces new features to the Framework. Those features are detailed below.
GraalVM 22.2.0
Micronaut framework 3.6.0 supports the latest GraalVM 22.2.0.
Test Resources
Micronaut Test Resources adds support for managing the external resources needed during development or testing.
It integrates with Testcontainers to provide throwaway containers for testing or local development. The Test Resources Architecture turns Testcontainers into a background service that build tools can interact with. This approach has many advantages (persistent reusable containers, cleaner classpath, fast hot reloads, native testing, etc.).
This initial release provides support for:
- JDBC and R2DBC databases such as MariaDB, MySQL, Oracle Express Edition, PostgreSQL, and Microsoft SQL Server
- Elasticsearch
- Kafka
- MongoDB
- MQTT
- Neo4J
- RabbitMQ
- Redis
- Hashicorp Vault
Moreover, Test Resources is easy to extend if the previous list does not cover your needs.
Test Resources Gradle Support
You can use Test Resources today by adding the Micronaut Test Resources Gradle Plugin.
Test Resources Maven Support
Integration with Micronaut Test Resources is available for Maven Micronaut applications and the Micronaut Maven Plugin.
You can enable test resources support by setting the property micronaut.test.resources.enabled
.
OpenTelemetry
Since its initial release, the Micronaut framework has provided support for distributed tracing via Open Tracing. The latest release of Micronaut Tracing includes tracing support for OpenTelemetry.
OpenTelemetry is a collection of tools, APIs, and SDKs. Use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) to help you analyze your software’s performance and behavior.
To get you started, we have written multiple guides:
- Microservices Distributed Tracing with Google Cloud Trace and the Micronaut Framework
- Use OpenTelemetry with Jaeger and the Micronaut Framework for Microservice distributed tracing
- Use OpenTelemetry with Zipkin and the Micronaut Framework for Microservice distributed tracing
- Use OpenTelemetry with AWS XRay and the Micronaut Framework for Microservice distributed tracing
- Microservices Distributed Tracing with Oracle Cloud OCI and the Micronaut Framework
Hibernate Reactive
Micronaut Data offered reactive persistence solutions such as Micronaut Data R2DBC.
We are happy to announce another reactive persistence option for Micronaut Users. Micronaut framework 3.6.0 adds integration with Hibernate Reactive. Hibernate Reactive is based on Vert.X, and implements the well-known concepts of JPA and Hibernate ORM based on the reactive programming paradigm.
You can use either Hibernate Reactive by itself with the appropriate Vertx driver or use Micronaut Data Hibernate Reactive, which adds support for the repository pattern on top of Hibernate Reactive, automatically implementing the most common queries for you!
You can generate a Micronaut application with Hibernate Reactive via the Micronaut CLI or Micronaut Launch.
Database | Micronaut Data Hibernate ReactiveW |
---|---|
MariaDB | data-hibernate-reactive , mariadb |
MySQL | data-hibernate-reactive , mysql |
Oracle | data-hibernate-reactive , oracle |
PostgreSQL | data-hibernate-reactive , postgres |
SQL Server | data-hibernate-reactive , sqlserver |
To get you started, read the Hibernate Reactive guides:
- Access a database with Micronaut Data and Hibernate Reactive
- Access a database with JPA and Hibernate Reactive
Micronaut Data
Micronaut Data features other improvements such as:
- Java Records support with MongoDB
- A new @IgnoreWhere annotation to prevent the generation of additional criteria for a query
- Type-Safe queries for Java and Kotlin
Micronaut Framework and Azure
Micronaut applications on NubesGen
What is NubesGen?
NubesGen is a Web application that generates a cloud infrastructure using Terraform or Bicep: you select easy-to-understand options (“an application server”, “a PostgreSQL database”), and it’ll generate a state-of-the-art configuration that you can import and tweak in your project.
Now you can create Micronaut Applications with NubesGen.
Azure Key Vault
Micronaut Azure adds support to Azure Key Vault.
Azure Key Vault is a secure and convenient storage system for API keys, passwords and other sensitive data.
JOOQ
Micronaut SQL jOOQ ships with jOOQ 3.15. First jOOQ release purely reactive, thanks to a native R2DBC integration.
Don’t apply a @Filter for services
It is possible to exclude services from an HTTP Client Filter with the member excludeServiceId
of @Filter.
@Filter(patterns = '/**', excludeServiceId = 'authClient')
public class AppHttpClientFilter implements HttpClientFilter {
Netty runtime
This version upgrades Netty from 4.1.77 to 4.1.79. Additionally, it contains improvements to the API to configure the Netty Client Pipeline and to configure the Netty Server Pipeline.
Improvements to HtttpClientException
If present a serviceId
field is populated in the HttpClientException
and shown in the exception message.
REST Assured
Micronaut Test adds a small utility module to help you integrate with the REST-assured library. We wrote a guide to show you how to use Micronaut Test REST-assured in a Micronaut application.
Micronaut Gradle Plugin
The Micronaut Gradle Plugin allows you to define the GraalVM JDK architecture via a configuration extension:
dockerfileNative {
graalArch.set("amd64")
}
Starter Features
You can select a new community feature agora-micronaut-permissions via Micronaut Launch/CLI Features. Agora Micronaut Permissions is a lightweight library to declare object-level permissions in the Micronaut framework built by the Agorapulse team.
CI Configuration Files
You can now generate a Continuous Integration (CI) configuration files to build your Micronaut applications with the following features:
CI | Feature |
---|---|
AWS CodeBuild | aws-codebuild-workflow-ci |
Github Actions | github-workflow-ci |
Google Cloud Build | google-cloud-workflow-ci |
Oracle Cloud Devops Build CI | oci-devops-build-ci |
Modules
Micronaut AWS
New versions of the Micronaut AWS module allow you to override the S3 endpoint URL via configuration. Also, it is now possible to inject a bean of type ApiGatewayManagementApiClient
.
LATEST AWS SDKS
Micronaut AWS updates to:
- Alexa ASK SDK 2.43.7
- AWS Java SDK v1 to 1.12.273
- AWS Java SDK v2 to 2.17.244
- AWS Lambda Events to 3.11.0
- AWS Lambda Java Core to 1.2.1
- AWS Serverless Java Container to 1.8.2
- CDK Lib to 2.35.0
Cache Dependencies Upgrade
Micronaut Cache updates to:
- Caffeine to 2.9.3
- Hazelcast to 2.5
- Inifinispan to 12.1.12.Final
Micronaut Groovy
Micronaut Groovy updates to GORM 7.3.0.
Micronaut GCP
Micronaut GCP updates to:
- Google Cloud Secret Manager 2.3.0
- Google Cloud Core: 2.8.6
- Google Cloud Native Image Support 0.14.1
- Google Auth 1.9.0
Micronaut Serialization
Micronaut Serialization updates to MongoDB BSON 4.7.1 and adds a static method io.micronaut.serde.ObjectMapper::getDefault()
to get an ObjectMapper
instance. This method should be invoked when access to the context is impossible.
Micronaut Servlet
Micronaut Servlet updates to:
- Tomcat Embedded Core 9.0.65
- Jetty 9.4.48.v20220622
- Undertow 2.2.18.final
Micronaut Reactor
Micronaut Reactor updates Project Reactor to 3.4.21.
Micronaut MongoDB
Micronaut MongoDB updates Mongo to 4.71.1. It adds support for Micronaut Serialization and fixes the health indicator and codes for enum types.
Micronaut Email
Micronaut Email updates SendGrid Java client to 4.9.3.
Schema Migration modules
Micronaut Flyway updates Flyway to 8.5.13. Micronaut Liquibase updates Liquibase to 4.14.0, and it features improvements to reduce start time when there is no migration to apply.
MicroStream 1.0.0
The GA release of Micronaut Microstream 1.0.0 is out! First-class support for MicroStream has been added to the Micronaut framework showcasing the creation of an open-source integration between the Micronaut framework and MicroStream. MicroStream is a Micronaut Foundation Silver Corporate Sponsor.
Micronaut Kafka
Micronaut Kafka ships with Kafka 2.8.1. Micronaut framework 4.0 will ship with Kafka 3.
BOM and Gradle Version Catalog
Several modules publish a BOM (Bill of materials) module and/or use a Gradle Version Catalog: Micronaut Cassandra, Micronaut Elasticsearch, Micronaut GCP, Micronaut GraphQL, Micronaut Jackson XML, Micronaut Micrometer, Micronaut Neo4j, Micronaut RabbitMQ, Micronaut Reactor, Micronaut Redis, Micronaut RxJava3, Micronaut TOML, and Micronaut Views.
TestContainers instead of Redis Embedded Server
The embedded Redis server that can be used for testing has been changed to only bind to localhost
. Our recommendation is to use Testcontainers instead. Embedded Redis server will be removed in a future version.
Binary Static Content with Micronaut Views JTE
Micronaut Views JTE supports binary static content.
Improvements to OpenAPI
Thank you to community contributor @altro3. He has improved the Micronaut OpenAPI module with many new features (support @ExternalDocumentation
, uri
member for the @OpenAPIInclude
annotation, …) and many bug fixes.
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.