We now filter static `with…` methods from wither method introspection to avoid considering a static method a wither method.
Previously, we did not check modifiers and so static methods could be considered withers.
Closes#3472
We also ignore transient properties used in constructors. Regular transient properties default to the Java default values (null for object types, 0 for numeric primitives and so on).
Using transient properties allows leveraging Kotlin's defaulting mechanism to infer default values.
Record components can also be annotated with the Transient annotation to allow record construction. While this can be useful, we recommend using the Value annotation to use SpEL expressions to determine a useful value.
Closes: #2985
Since we're using the SerializableLambdaReader from within a GraalVM Feature it needs to operate without references to types potentially not present at build time.
Original Pull Request: #3466
We now provide a feature that introspects TypedPropertyPath and PropertyReference lambdas and registers GraalVM metadata for lambdas and the referenced class.
See: #3400Closes: #3466
We now include annotations of repository query method parameters to allow introspection through Parameters for reflective checks.
See: spring-projects/spring-data-relational#2245
Closes: #3458
Compare the event's ApplicationContext.getBeanFactory() with the listener's
BeanFactory to filter out child context events, preventing premature
repository initialization.
Closes#3459
Original pull request: #3461
Signed-off-by: seongjun.ha <seongjun.ha@rapportlabs.kr>
This commit drops support for projections if a parameter (or the parameter type)
is not explicitly annotated with `@ProjectedPayload`. A warning is still logged
in these cases to help user understand why the parameter is not being projected.
Also, simplify tests.
Closes#3301
Original pull request: #3453
Related ticket: #3298
Kotlin 2 now no longer implements serializable lambdas for SAM bridging through Java's writeReplace mechanism producing SerializedLambda but rather through a SAM class that captures the function object we're looking for.
Also, skip intrinsics calls when introspecting Kotlin classfiles.
Also, use ReflectJvmMapping instead of internal KPropertyImpl types as these will be removed with Kotlin 2.3.
Closes#3451
We now properly implement resolution and delegation for raw paths not requiring TypedPropertyPath.of(…) usage at the call site.
See: #3400
Original Pull Request: #3409