Contact Us About Sponsorship

Questions about Micronaut Foundation sponsorship?

Please complete this form, and we’ll follow up with you shortly.

[hubspot type=form portal=4547412 id=a7b3ddfa-64b0-47fd-8358-45fa6a09456a]

Micronaut® Framework 3.1 Released

by James Kleeh Tags:

The Micronaut Foundation™ is excited to announce the release of Micronaut framework 3.1! This is the first feature release since we released Micronaut framework 3.0 in mid-August.

Here are the new features, improvements, and changes included in this release.

JDK 17 Support

Micronaut Launch now supports creating applications with JDK 17!

Primitive Beans

Factory beans can now create beans that are primitive types or primitive array types.

Repeatable Qualifiers

Qualifiers can now be repeatable, allowing narrowing of bean resolution by a complete or partial match of the qualifiers declared on the injection point.

InjectScope

A new @InjectScope annotation has been added, which destroys any beans with no defined scope and injects them into a method or constructor annotated with @Inject after the method or constructor completes.

Build Time Optimizations

The way classes are generated to support bean introspections has changed to reduce the number and size of the classes generated, as well as optimizing your Micronaut project’s memory usage, in particular with GraalVM.

Context Propagation

Support for context propagation of the server request has been further improved by passing request context information in the Project Reactor context and when using Kotlin coroutines. See the documentation for more information.

Filter By Regex

HTTP filters now support matching URLs by a regular expression. Set the patternStyle member of the annotation to REGEX, and the value will be treated as a regular expression.

Random Port Binding

The way the server binds to random ports has improved and should result in fewer port-binding exceptions in tests.

@Client Data Formatting

The ann:core.convert.Format[] annotation now supports several new values that can be used in conjunction with the declarative HTTP client to support formatting data in new ways. See the documentation for the full details.

Streaming File Uploads

The StreamingFileUpload API has been improved to support streaming directly to an output stream. As with the other transferTo methods, the write to the stream is offloaded to the IO pool automatically.

Server SSL Configuration

The SSL configuration for the Netty server now responds to refresh events. This allows for swapping out certificates without having to restart the server. See the https documentation for information on how to trigger the refresh.

New Netty Server API

If you wish to programmatically start additional Netty servers on different ports with potentially different configurations, new APIs have been added to do so, including a new NettyEmbeddedServerFactory interface.

Deprecations

The netty.responses.file.* configuration is deprecated in favor of micronaut.server.netty.responses.file.*. The old configuration key will be removed in the next major version of the framework.

Module Upgrades

Micronaut Data 3.1.0

  • Kotlin’s coroutines support. New repository interface CoroutineCrudRepository.
  • Support for AttributeConverter
  • R2DBC upgraded to Arabba-SR11
  • JPA Criteria specifications

Micronaut Security

  • micronaut.security.token.roles-separator configuration property splits roles in a string claim
  • Support for Jakarta security annotations: jakarta.annotation.security*
  • SecurityFilter is now togglable and has a configurable pattern
  • micronaut.security.oauth2.clients.*.client-credentials.additional-request-params configuration property provides additional parameters for Client Credential requests

Micronaut JAX-RS 3.1

The JAX-RS module now integrates with Micronaut Security, allowing binding of the JAX-RS SecurityContext

Micronaut Kubernetes 3.1.0

Micronaut Kubernetes 3.1 introduces a new annotation: @Informer. By using the annotation on the ResourceEventHandler, the Micronaut framework will instantiate the SharedInformer from the official Kubernetes Java SDK. Then you only need to take care of handling the changes of the watched Kubernetes resource. See more on Kubernetes Informer.

Micronaut Oracle Coherence 3.0.0

The Micronaut Oracle Coherence module is now out of preview status and includes broad integration with Oracle Coherence, including support for caching, messaging, and Micronaut Data.

Community Feedback

We consider the community to be the cornerstone of the Micronaut framework, and your feedback is incredibly important to its success! Please try upgrading your existing applications to this release and report any issues you find. See the documentation for further details and use GitHub to report any issues.