Releases: micronaut-projects/micronaut-core
Releases · micronaut-projects/micronaut-core
Micronaut Core v4.3.0
What's Changed
New Features 🎉
Bug Fixes 🐞
-
Fail
PostponeToNextRoundException
on error generic element by @dstepanov in #10387 -
Fix getting the name of
FilteringCompositeQualifier
by @dstepanov in #10397
KSP Improvements and Bug Fixes
- KSP: Allow to instantiate a bean with all defaults by @dstepanov in #10351
- KSP: Allow to specify extra all-open annotations by @dstepanov in #10360
- KSP: support defaults on bean constructors by @dstepanov in #10371
- KSP: use
overrides
method instead offindOverridee()
by @dstepanov in #10272 - KSP: Don't create beans from interfaces by @dstepanov in #10349
- KSP: Allow to use a creator by @dstepanov in #10355
- KSP: Fix mapping problems caused by unrecognized annotation container by @dstepanov in #10361
- KSP: Visit inner-inner classes by @dstepanov in #10365
- KSP: Fix default methods with 32+ parameters by @dstepanov in #10398
Other Changes 💡
- Optimize Netty direct response by @dstepanov in #10181
- Refactor filtering to improve performance by @dstepanov in #10167
- Optimize routing by @dstepanov in #10177
- Correct nullable router signature by @dstepanov in #10201
- Allow to skip parsing the request's url into
URI
by @dstepanov in #10178 - Catch errors on
fulfillArguments
by @dstepanov in #10214 - Restore
RequestLifecycle
for backwards compatibility with Servet by @dstepanov in #10224 - Allow to disable filters based on the request by @dstepanov in #10172
- Add cache for DateTimeFormatter for @Format annotations by @altro3 in #10198
- Improve bytecode generation code by @dstepanov in #10265
- Cleanup code in
isAccessible
by @dstepanov in #10287 - Add test reproducing importing a bean with a primitive parameter by @dstepanov in #10316
- Reuse loaded native elements by @dstepanov in #10381
- Allow client config of WebSocket per message deflate by @jeremyg484 in #10357
- accept breaking changes by @sdelamo in #10405
Improvements ⭐
- systemd socket activation support by @yawkat in #10072
- Remove unused Netty attributes by @dstepanov in #10185
- Use cached
MessageBodyReader
for reading the body by @dstepanov in #10186 - Execute async controller methods without Reactor by @dstepanov in #10212
- More detailed error messages by @dstepanov in #10223
- Move URI validation step back to RoutingInBoundHandler by @yawkat in #10232
- Replace chunked write API by @yawkat in #10138
- Fix request backpressure by @yawkat in #10142
- Reimplement
EnclosedElementsQuery
to improve performance by @dstepanov in #10237 - Implement decompression in PipeliningServerHandler by @yawkat in #10155
- Compression support in PipeliningServerHandler by @yawkat in #10246
- Replace HttpServerKeepAliveHandler by @yawkat in #10250
- Use FastThreadLocal for context propagation if available by @yawkat in #10254
- Use Javac's
overrides
to determine if the method is overridden by @dstepanov in #10281 - Downgrade HTTP client log message by @oliverblaha in #10257
- Do not include malformed URI in error message by @be-a-bee in #10324
- Avoid having
TypeConverter
defined as beans by @dstepanov in #10315 - Small RequestHandler refactor by @yawkat in #10326
- Make NettyJsonHandler implement NettyBodyWriter by @yawkat in #10339
- Expression implementation improvements by @dstepanov in #10320
- AST: Introduce
MethodElement#getOverriddenMethods
to get all the methods overridden by this method by @dstepanov in #10342 - Java AST: Mark primitive types as non-null by @dstepanov in #10348
- Allow to reference a method in a class annotation expression by @dstepanov in #10332
- Improve how AOP proxy target is generated by @dstepanov in #10358
- Inject
InterceptorRegistry
into an AOP proxy, avoid multiple get bean calls by @dstepanov in #10359 - extract netty cookie into its own module by @sdelamo in #10364
- imp: add default methods to BeanDefinition to ease checking whether a method is annotated by @sdelamo in #10261
- Correct cache key of overridden method lookup by @dstepanov in #10380
- Reprocess types with errors
TypeElementVisitorProcessor
and allow to veto elements by @dstepanov in #10385 - Add support Access-Control-Allow-Private-Network CORS header. by @altro3 in #10400
- Log level properties case insensitive by @altro3 in #10396
Docs 📖
- Correct malformed asciidoc tags and indents with streaming file upload docs. by @wetted in #10094
- Document it is possible to use Java Records for immutable configuration with @ConfigurationProperties by @wetted in #10096
- Document Micronaut Context dependency requirement for immutable configuration properties, scheduling, and context events. by @wetted in #10095
- Improve PathVariable Docs by @wetted in #10275
- Clarify use of defaultValue element of PathVariable annotation by @wetted in #10289
- doc: Kotlin inline value classes No @introspected by @sdelamo in #10319
- doc: change Grails creator copy by @sdelamo in #10087
Dependency updates 🚀
- fix(deps): update dependency org.jetbrains:annotations to v23.1.0 by @renovate in #10144
- Update dependency org.tomlj:tomlj to v1.1.1 by @renovate in #10336
- Update dependency org.yaml:snakeyaml to v2.2 by @renovate in #10308
- Update jmh to v1.37 by @renovate in #10313
- Update dependency com.squareup.okio:okio to v3.7.0 by @renovate in #10286
- Update dependency org.testcontainers:spock to v1.19.3 by @renovate in #10306
- Update dependency com.github.javaparser:javaparser-symbol-solver-core to v3.25.8 by @renovate in https://...
Micronaut Core 4.2.4
What's Changed
Dependency updates 🚀
build: Update netty monorepo to v4.1.106.Final (#10399)
- https://netty.io/news/2024/01/16/4-1-105-Final.html
- https://netty.io/news/2024/01/19/4-1-106-Final.html
Docs 📖
- doc: Kotlin inline value classes No @introspected by @sdelamo in #10319
- doc: change Grails creator copy by @sdelamo in #10087
Other Changes 💡
Full Changelog: v4.2.3...v4.2.4
Micronaut Core 4.2.3
What's Changed
Bug Fixes 🐞
- Fix logged errors reported by fuzzing by @yawkat in #10273
- Initialize classes at build time that can deadlock graal compiler by @graemerocher in #10283
- KSP: Do not store default empty string annotation value by @dstepanov in #10284
- Ensure responseWritten is called on discard by @yawkat in #10288
- Publish service ready / stopped in consistent order by @dstepanov in #10325
Other Changes 💡
- KSP: Fix
@Generated
processing by @dstepanov in #10282 - Javac: Extract type variable name using the element by @dstepanov in #10293
Dependency updates 🚀
- fix(deps): update netty monorepo to v4.1.104.final by @renovate in #10276
- chore(deps): update gradle/gradle-build-action action to v2.11.0 by @renovate in #10252
Full Changelog: v4.2.2...v4.2.3
Micronaut Core 4.2.2
What's Changed
Bug Fixes 🐞
- KSP: Resolved type arguments shouldn't be marked as a type variable by @dstepanov in #10193
- Fix error with duplicate builder methods by @dstepanov in #10226
- Allow context-path to be an empty String by @jeremyg484 in #10231
- KSP: Fix enum class values by @dstepanov in #10240
- KSP: Workaround for inner anonymous classes by @dstepanov in #10247
- test. ThreadSelection accept event loop in the handler in blocking and auto scenarios by @sdelamo in #10104
- [bug] EL fails when using primitive method arguments in expression by @timyates in #10149
Improvements ⭐
Docs 📖
- Update ROADMAP.adoc by @sdelamo in #10213
- Change to public so that java doc is generated for Configuration Reference link in manual. by @wetted in #10233
- docs: add reactor context propagation example by @wetted in #10220
- Update breaking changes for Micronaut 4 by @hrothwell in #10248
- Add links to guides for Micronaut Core by @wetted in #10269
Dependency updates 🚀
- fix(deps): update dependency ch.qos.logback:logback-classic to v1.4.14 by @renovate in #10191
- fix(deps): update dependency io.netty.incubator:netty-incubator-codec-http3 to v0.0.23.final by @renovate in #10222
- fix(deps): update dependency com.github.javaparser:javaparser-symbol-solver-core to v3.25.7 by @renovate in #10207
- fix(deps): update dependency io.micronaut.aws:micronaut-aws-bom to v4.1.2 by @renovate in #10249
- fix(deps): update dependency io.micronaut.rxjava2:micronaut-rxjava2-bom to v2.2.0 by @renovate in #10241
- fix(deps): update dependency io.micronaut.reactor:micronaut-reactor-bom to v3.2.0 by @renovate in #10234
- fix(deps): update netty monorepo to v4.1.103.final by @renovate in #10270
- fix(deps): update managed.ksp to v1.9.21-1.0.16 by @renovate in #10268
Other Changes 💡
- Update test by @sdelamo in #10187
- Optimize overrides-method check by @dstepanov in #10195
- Fix concurrent retrieval of expression resolvers by @rorueda in #10229
- KSP: Exclude static properties by @dstepanov in #10245
- test: remove javax.persistence.Transient from Mapper by @sdelamo in #10113
- Allow Refreshable scope under test for Env.FUNCTION and ANDROID by @timyates in #10264
New Contributors
- @hrothwell made their first contribution in #10248
Full Changelog: v4.2.1...v4.2.2
Micronaut Core 4.2.1
What's Changed
Bug Fixes 🐞
- protect against activeListeners NPE by @sdelamo in #10114
- Fix methods not respecting the array type when comparing by @dstepanov in #10168
Improvements ⭐
- remove unnecessary MicronautTest annotation by @sdelamo in #10111
- test: javax/jakarta.persistence.Transient remains in Introspected by @sdelamo in #10110
- javadoc: AnnotationValue correct since [ci skip] by @sdelamo in #10115
- Replaces usages of BeanContext::run with ApplicationContext::run by @sdelamo in #10184
- Use bean context classloader for Jackson by @dstepanov in #10121
- Update OptionsFilter to not emit duplicate headers by @jeremyg484 in #10126
- refactor: Use diamond operator by @timtebeek in #10146
- refactor: Apply SLF4J best practices by @timtebeek in #10161
Docs 📖
- doc: Update documentation to reflect that @transient was removed by @sdelamo in #10112
- Update documentation statusHandlers.adoc by @paulgrugnale in #10119
- Guide: Added instructions for setup NetBeans for Micronaut by @lkishalmi in #10136
Tests ✅
Dependency updates 🚀
- fix(deps): update dependency io.netty.incubator:netty-incubator-transport-native-io_uring to v0.0.24.final by @renovate in #10132
- fix(deps): update dependency com.h2database:h2 to v2.2.224 by @renovate in #9783
- fix(deps): update dependency com.blazebit:blaze-persistence-core-impl to v1.6.10 by @renovate in #9461
- fix(deps): update dependency io.smallrye:smallrye-fault-tolerance to v6 by @renovate in #9339
- fix(deps): update vertx to v3.9.16 by @renovate in #8255
- fix(deps): update dependency org.neo4j.driver:neo4j-java-driver to v1.7.6 by @renovate in #10152
- fix(deps): update dependency ch.qos.logback:logback-classic to v1.4.13 by @renovate in #10166
Groovy
- fix(deps): update groovy monorepo to v4.0.16 by @renovate in #10182
- fix(deps): update groovy monorepo to v4.0.15 by @renovate in #9876
Kotlin
- fix(deps): update kotlin monorepo to v1.9.21 by @renovate in #10157
- fix(deps): update managed.ksp to v1.9.21-1.0.15 (#10169)
Micronaut Modules
Micronaut Reactor
- fix(deps): update dependency io.micronaut.reactor:micronaut-reactor-bom to v3.1.0 by @renovate in #10108
Micronaut RxJava3
- fix(deps): update dependency io.micronaut.rxjava3:micronaut-rxjava3-bom to v3.1.0 by @renovate in #10125
Micronaut Session
- fix(deps): update dependency io.micronaut.session:micronaut-session to v4.1.0 by @renovate in #10135
CI ⚙️Build 🐘
- Deprecations fixes and minor improvements in gradle scripts by @altro3 in #10036
- chore(deps): update dependency gradle to v8.5 by @renovate in #10174
- chore(deps): update gradle/gradle-build-action action to v2.10.0 by @renovate in #10170
Micronaut Gradle Plugin
New Contributors
- @paulgrugnale made their first contribution in #10119
- @lkishalmi made their first contribution in #10136
Full Changelog: v4.2.0...v4.2.1
Micronaut Core 4.2.0
What's Changed
New Features 🎉
- Add StreamingFileUpload.asInputStream by @yawkat in #9787
- Add DefaultHttpClient constructor with ssl builder by @yawkat in #9875
- Facilitate troubleshooting with trace logging for health check results when
endpoints.health.details-visible
is unavailable. by @wetted in #9895 - Respect @Format annotation for fields passed as http request body arguments by @oujesky in #9883
- feat: dispatch OPTIONS requests by @sdelamo in #10011
- Implement zealous block detection for HttpClient by @yawkat in #10010
KSP
- KSP: skip
ExecutableVisitor
warning for default parameters by @dstepanov in #9833 - KSP: Implement annotation defaults retrieval by @dstepanov in #9786
- KSP: performance improvements by @dstepanov in #9832
Bug Fixes 🐞
- Add alias annotations before the stereotypes by @dstepanov in #9942
Improvements ⭐
- Polish
DefaultMutableConversionService
by @dstepanov in #9744 - Performance optimizations by @dstepanov in #9701
- imp: build route with a media type other than JSON by @sdelamo in #9756
- Performance improvement and cleanup of
PropertySourcePropertyResolver
by @dstepanov in #9766 - Changing Jakarta provide to
BeanProvider
as it's lazy by @dstepanov in #9779 - Fix processing order of introduced method in Java by @dstepanov in #9784
- Small bean context optimizations by @dstepanov in #9788
- Correct how maps/sets are initialized with a correct size by @dstepanov in #9834
- Improve default annotation values by @dstepanov in #9838
- Support generating source files by @dstepanov in #9960
- Improve usability of @Mapper annotation by @graemerocher in #9980
- Replace DEFAULT_EVENT_LOOP_THREADS with a lazy getter by @yawkat in #9815
- Bind form values as an array to simplify deserialization by @dstepanov in #10070
- Remove unused imports by @altro3 in #10039
- Add BinaryTypeConfiguration by @timyates in #9530
- AST: Support resolving the class element represented by
GenericElement
by @dstepanov in #9757 - Another HTTP filters refactoring by @dstepanov in #9722
- Skip calling
containsBean
forio.micronaut.context.BeanProvider
by @dstepanov in #9768 - Implement enum constant in kotlin element factory by @altro3 in #9774
- Conversion service improvements by @dstepanov in #9770
- Improve bean qualifiers by @dstepanov in #9778
- Add missing
@Override
annotations by @altro3 in #10040 - change comment copy by @sdelamo in #10103
- imp: avoid name shadowning of result by @sdelamo in #10101
- Text proofreading by @altro3 in #10038
- imp: Exception 'java.io.IOException' is never thrown in the method by @sdelamo in #10102
- Checkstyle fixes. Remove tests conditions for JDK version less 17 by @altro3 in #10045
Tests ✅
- Fix frequent CI failures of MDCReactorSpec by @jeremyg484 in #10031
- Add tests clarifying annotations on hidden methods by @dstepanov in #9821
- test: set explicitely WRITE_IN_METAINF=false by @sdelamo in #9792
- Move old tests from JUnit4 to JUnit Jupiter by @altro3 in #10041
- tck: RequestUriTest by @sdelamo in #9986
Docs 📖
- docs: how to use the Micronaut ResourceLoader API with example using ResourceResolver by @wetted in #10054
- Fixes in adoc format by @altro3 in #10037
- docs: fix broken, stale, and deprecated links in user guide by @wetted in #9819
- Clarify how to return text-plain responses for answers others than Strings by @wetted in #9911
- Docs: Update reference field name in explaination by @dnyaneshwar2023 in #10093
Dependency updates 🚀
- fix(deps): update dependency com.fasterxml.jackson.core:jackson-databind to v2.15.3 by @renovate in #9988
- fix(deps): update netty monorepo to v4.1.101.final by @renovate in #10097
- fix(deps): update managed.jackson to v2.15.3 by @renovate in #9997
- fix(deps): update asm to v9.6 by @renovate in #10047
- chore(deps): update plugin me.champeau.jmh to v0.7.2 by @renovate in #10043
- fix(deps): update dependency com.squareup.okio:okio to v3.6.0 by @renovate in #10064
- fix(deps): update dependency io.netty.incubator:netty-incubator-codec-http3 to v0.0.22.final by @renovate in #10081
- fix(deps): update dependency com.github.javaparser:javaparser-symbol-solver-core to v3.25.6 by @renovate in #10057
- Merge branch '4.1.x' into '4.2.x' by @sdelamo in #10099
Kotlin
Micronaut Modules
Micronaut AWS
Micronaut Groovy
- fix(deps): update dependency io.micronaut.groovy:micronaut-runtime-groovy to v4.1.0 by @renovate in #10088
Micronaut Reactor
- build: Reactor 3.5.11 and Micronaut Reactor 3.0.3 by @sdelamo in #9966
- fix(deps): update dependency io.micronaut.reactor:micronaut-reactor-bom to v3.0.4 by @renovate in #10015
CI ⚙️Build 🐘
- Use the current JDK for testing, but 17 for building by @timyates in #9989
- Add Java 21 by @timyates in #9978
- Fix develocity badge by @timyates in #9996
GraalVM
- chore(deps): update graalvm/setup-graalvm action to v1.1.5 by @renovate in #10063
- chore(deps): update dependency org.graalvm.buildtools.native:org.graalvm.buildtools.native.gradle.plugin to v0.9.28 by @renovate in #10002
Micronaut Build Plugin
- chore(deps): update plugin io.micronaut.build.shared.settings to v6.5.7 by @renovate in #9976
- chore(deps): update dependency io.micronaut.build.internal:micronaut-gradle-plugins to v6.6.0 by @renovate in #10033
- chore(deps): update dependency io.micronaut.build.internal:micronaut-gradle-plugins to v6.6.1 by @renovate in #10105
SVM
New Contributor...
Micronaut Core 4.1.12
What's Changed
Improvements ⭐
- More efficient discard when request body is ignored by @yawkat in #10067
- regression: support JSON Merge Patch by @caioguedes in #10089
Other Changes 💡
- Cleanup Gradle JVM compatibility checks by @dstepanov in #10076
Tests ✅
- Fix goaway test by @yawkat in #10079
- Reduce test pollution with spec.name and requires in http-client tests by @timyates in #10084
- Update test to correctly assert error with Servlet by @jeremyg484 in #10082
New Contributors
- @caioguedes made their first contribution in #10089
Full Changelog: v4.1.11...v4.1.12
Micronaut Core 4.0.7
What's Changed
Bug Fixes 🐞
- Make
DefaultClassPathResourceLoader
handle URLs with formatjar:file:/{JAR_PATH}!/{PREFIX}!/{RESOURCE}
gracefully (#10092) - Cherrypicks Issue 9905 websphere deploy war (#9906) by @sdelamo in #9918
Tests ✅
- tck: LocalDateTime query value & form url encoded (#10027)
- test: tck test for multiple headers request by @driverpt in #9814
Full Changelog: v4.0.6...v4.0.7
Micronaut Core 3.10.3
What's Changed
Other Changes 💡
- tck: LocalDateTime query value & form url encoded by @sdelamo in #10027
- Fix @QueryValue of LocalDateTime type for 3.10.x by @rlconst in #9970
- Make
DefaultClassPathResourceLoader
handle URLs with formatjar:file:/{JAR_PATH}!/{PREFIX}!/{RESOURCE}
gracefully by @guillermocalvo in #10092
New Contributors
Full Changelog: v3.10.2...v3.10.3
Micronaut Core 4.1.11
What's Changed
Bug Fixes 🐞
- Cherrypicks Issue 9905 websphere deploy war (#9906) by @sdelamo in #9918
- Fix JsonSyntaxException: Superfluous data after top-level array in streaming mode by @dstepanov in #10000
- Handle and log HTTP/2 GOAWAY frame by @yawkat in #10007
- Add eq/hc for HttpVersionSelection by @yawkat in #9999
- Change default connection pool idle timeout from 0 to null by @yawkat in #10013
- Allow onComplete before request in PipeliningServerHandler by @yawkat in #10017
- fix: do not try to dispatch inside the event loop if channel is inactive by @rorueda in #10018
- Do not try to apply JsonView to failed responses by @yawkat in #10022
- Fix logged error when using form fields with blocking filter by @yawkat in #10021
- Fix exception when querying primary constructor of private record by @yawkat in #10049
- Fix client read timeout between earmark and dispatch by @yawkat in #10050
Improvements ⭐
- Support GraalVM JDK 21+ --strict-image-heap flag by @graemerocher in #10001
Tests ✅
- tck: form-url-encoded with field with list by @sdelamo in #10023
- tck: Form Submission of optional num type by @sdelamo in #10029
- Tck: Tests for error handlers with flux controller methods by @jeremyg484 in #10025
New Contributors
Full Changelog: v4.1.10...v4.1.11