Update documentation.
Additional logging for repository bootstrap procedure.
Limit usage of Optional in RepositoryFragment.
Original Pull Request: #3145
Repositories that detect fragment implementations implementing RepositoryMetadataAccess enable metadata exposure regardless of the exposeMetadata flag.
See: #3090
Original Pull Request: #3145
We now attempt to detect property accessors for properties declared in Kotlin that do not have a Kotlin-style accessor but one that instead comes from an interface.
Also, we specialize accessor methods that are inherited from a Java superclass but override accessors in the Kotlin realm.
Closes#3140Closes#3146
We now explicitly do not match handler method parameters that are annotated with anything but @ModelAttribute or @ProjectedPayload. This prevents us accidentally opting into parameter handling for annotated parameters that use interfaces for their declaration and are supposed to be handled by some other infrastructure.
Fixes GH-2937.
We now refrain from registering a SpringDataWebSettings instance as bean in the ApplicationContext if @EnableSpringDataWebSupport is used without an explicit declaration of pageSerializationMode. This allows Spring Boot to use the annotation, but allow the attribute value to be configured via a property at the same time.
See https://github.com/spring-projects/spring-boot/pull/39797#discussion_r1508396169 for details.
Fixes GH-3054.
Registering a StdConverter with Jackson to log a warning about the Page serialization mode causes the target serializer to be only built for Page losing additional properties defined on extensions. We now instead register a no-op BeanSerializerModifier that issues the warning and doesn't affect the serializer selection.
Fixes GH-3137.
KotlinCopyMethod.shouldUsePublicCopyMethod(…) now considers single-association arrangements. Also, the method now early exists if pre-conditions aren't met.
Closes#3131
We now detect that the consumption of the events published during a persistence operation has produced new event instances that would go unpublished and raise an explaining exception. Previously such a scenario would've resulted in a ConcurrentModificationException.
We primarily reject such a scenario as handling the additional event would extend our convenience mechanism over the publishing scope a direct 1:1 replacement with ApplicationEventPublisher would've achieved.
Fixes GH-3116.
We now no longer declare cacheRepositoryFactory as synchronized to avoid locking. Additionally, simplify the flow and reuse computed values as much as possible.
Closes#3126
We now consider the declaring class to properly resolve type variable references for the result post-processing of a query method result.
Previously, we attempted to resolve the return type without considering the actual repository class resolving always Object instead of the type parameter.
Closes#3125
Removing `isSubsequentPage`. It is another name for !isFirstPage suggesting a different meaning which isn't there.
Extracting `if (isFirstPage(pageable)) {`, further structuring the decision tree.
See #3103
Original pull request #3113
Delegate annotation attribute resolution to configured BeanNameGenerator resolving method and test for enabling reactive repositories.
Original Pull Request: #3083
We now accept a dedicated BeanNameGenerator in our Enable…Repositories annotations to override the importBeanNameGenerator.
Closes: #3082
Original Pull Request: #3083
Provide load-factor to sets with well-known sizing, move annotation auditing metadata cache to DefaultAuditableBeanWrapperFactory to avoid strong static references.
See #3067
Original pull request: #3073