What's Changed
New Features 🎉
- Support MessageBodyWriter/Reader in the HTTP client by @yawkat in #9201
- Implement SSL config reloading for the netty http client by @yawkat in #9218
- New API for context propagation by @dstepanov in #7498
Bug Fixes 🐞
- Correct Groovy storing annotation defaults in stereotype annotations by @graemerocher in #9232
Improvements ⭐
- Set default netty maxOrder to 3 by @yawkat in #9231
- Implement custom Netty
RequestBinderRegistry
by @dstepanov in #9243 - Add nullable annotations transformers by @altro3 in #9247
Dependency updates 🚀
- Update junit5 monorepo by @renovate in #9229
- Update groovy monorepo to v4.0.12 by @renovate in #9227
- Update dependency org.graalvm.nativeimage:svm to v22.3.2 by @renovate in #9226
- Update dependency io.micronaut.build.internal:micronaut-gradle-plugins to v6.4.4 by @renovate in #9225
Other Changes 💡
- Fix not supported error with type use annotations and expression by @graemerocher in #9217
- Use JsonNodeConvertibleValues when deserializing untyped ConvertibleValues by @yawkat in #9219
- Use app conversion service in ConvertibleValuesDeserializer by @yawkat in #9230
- Correct Kotlin mirror types JVM canonical name by @dstepanov in #9235
- Fix for Kotlin test failures after validation upgrade by @graemerocher in #9238
- Remove deprecated code by @dstepanov in #9244
- Replace netty workaround with Http2MultiplexActiveStreamsException by @yawkat in #9237
- Replace
javax.inject.*
,javax.annotations.Nullable
,javax.annotations.Nonnull
with Jakarta annotations by @dstepanov in #9241 - Workaround for recognizing "javax.inject.Named" by @dstepanov in #9252
- Workaround for recognizing "javax.inject.Qualifier" by @dstepanov in #9253
- Support around annotations defined on an interface by @dstepanov in #9258
Full Changelog: v4.0.0-M3...v4.0.0-M4