What's Changed
New Features 🎉
- Add support for annotation-based CORS configuration (8558) by @wetted in #8580
- Support for Compilation Time Expressions in Annotations by @graemerocher in #8954
- add ability to disable streaming http request processing by @graemerocher in #9006
- Support for conditional routing by @graemerocher in #9094
Bug Fixes 🐞
Improvements ⭐
- tck: static resource test by @sdelamo in #8971
- Unwrap optionals with safe navigation in expressions by @graemerocher in #9024
- Use
Map.of
instead of custom implementation by @dstepanov in #9032
Docs 📖
- doc: don't use Micronaut as a noun by @sdelamo in #8958
- Fix broken link to checkstyle issue img by @Januson in #9047
Dependency updates 🚀
- Bump Jib Maven Plugin version by @alvarosanchez in #8980
- build: netty 4.1.90-Final by @sdelamo in #9019
- fix(deps): update managed-jackson to v2.14.2 by @renovate in #8169
- fix(deps): update managed-slf4j to v2.0.7 by @renovate in #8537
- chore(deps): update plugin com.google.devtools.ksp to v1.8.20-1.0.10 by @renovate in #8676
- fix(deps): update dependency org.testcontainers:spock to v1.17.6 by @renovate in #9044
- build: Kotlin 1.8.20 by @sdelamo in #9055
- chore(deps): update gradle/gradle-build-action action to v2.4.0 by @renovate in #9080
- fix(deps): update netty monorepo to v4.1.91.final by @renovate in #9079
- fix(deps): update junit5 monorepo by @renovate in #9078
Other Changes 💡
- Fix bug preventing scheduled jobs from being ran in the specified time zone by @Gradsta in #8911
- More mTLS test cases by @yawkat in #8944
- Move from
javax.el
tojakarta.el
. by @altro3 in #8966 - build: Apache Groovy 4.0.10 by @sdelamo in #8975
- Embedded HTTP benchmark, various small perf improvements by @yawkat in #8974
- Fix validation tests by @dstepanov in #8983
- Correct KSP parameters matching by @dstepanov in #8989
- Correct KotlinClassElement's
isAssignable
by @dstepanov in #8988 - add missing logback.xml by @wetted in #8987
- Fix race condition in FilterRunner by @yawkat in #9005
- Make Kotlin and Kotlin coroutines versions managed. by @wetted in #8995
- More performance improvements by @yawkat in #8993
- fix java.lang.IllegalArgumentException: duplicate element: ALL_PUBLIC_METHODS by @graemerocher in #9015
- Correct typo in
OutgointRequestProcessorMatcher
classname. by @wetted in #9016 - Support JDK 20 in annotation processors by @dstepanov in #9022
- Improve support for logback 1.3+ by @timyates in #9018
- Enhance TCK server headers test by @timyates in #9025
- Cleanup expressions implementation and improve perf by @graemerocher in #9027
- ci: fold release-notes & sonar in gradle workflow by @sdelamo in #9033
- Make evaluation context objects effectively singleton by @graemerocher in #9034
- Add a class for handling headers in a case-insensitive way by @timyates in #9031
- Update CRaC to 1.2.1 for Micronaut 3.9.0 by @timyates in #8992
- Fix broken incremental compilation with Gradle by @graemerocher in #9038
- Retrieving beans from bean context in expressions by @GavrilovSV in #9041
- Merge branch 3.9.x into 4.0.x by @sdelamo in #9042
- Bump Spock to 2.3 and Groovy to 4.0.11 by @szpak in #9054
- Retrieving environment properties in expressions by @GavrilovSV in #9053
- More performance optimizations by @dstepanov in #9070
- Performance optimizations: cache executor, optimize HttpMethod enum by @graemerocher in #9063
- Fix Groovy/Spock bug in Kubernetes module by @graemerocher in #9067
- Microoptimizations by @yawkat in #9069
- Make legacy filters work like in Micronaut 3 by @dstepanov in #9071
- KSP: Ignore class element nullability for isAssignable by @dstepanov in #9075
- Expose ConnectionManager for use in Oracle Cloud Netty client by @yawkat in #9073
- Issue 8592 - Update Custom converter docs to use ConversionService bean by @wetted in #8638
- Disable leak detection by default by @yawkat in #9074
- More performance optimizations by @dstepanov in #9076
- Fix buffer leak by @yawkat in #9092
- use Milestone versions by @sdelamo in #9085
- Remove unused logback.xml file by @timyates in #9104
New Contributors
Full Changelog: v4.0.0-M1...v4.0.0-M2