Commit Graph

3029 Commits

Author SHA1 Message Date
Tran Ngoc Nhan
f67cb87bf8 Polishing.
Add missing Override annotations. Use instanceof pattern variables, use diamond operator where possible.

Closes #3162
2024-09-26 11:27:29 +02:00
Mark Paluch
737502c4e4 Polishing.
See #3160
2024-09-26 10:59:46 +02:00
Mikhail2048
4a620ed9a0 Added Lazy wrapper for ReturnType#isDto.
Closes #3160
2024-09-26 10:59:37 +02:00
Mark Paluch
5df841b386 Consider projections without input properties open ones.
Closes #3164
2024-09-25 09:58:53 +02:00
Mark Paluch
4633380ae4 Polishing.
Add missing Override annotations. Eagerly compute input properties.

See #3163
2024-09-24 16:05:58 +02:00
Mark Paluch
22066eced3 Expose ReturnedType factory method.
Closes #3163
2024-09-24 15:59:23 +02:00
Jens Schauder
f305308a21 After release cleanups.
See #3098
2024-09-13 12:42:28 +02:00
Jens Schauder
5e9b7d00b0 Prepare next development iteration.
See #3098
2024-09-13 12:42:27 +02:00
Jens Schauder
82fb995ac4 Release version 3.4 M1 (2024.1.0).
See #3098
2024-09-13 12:39:32 +02:00
Jens Schauder
ee5e272348 Prepare 3.4 M1 (2024.1.0).
See #3098
2024-09-13 12:39:13 +02:00
Christoph Strobl
d9bdd2b550 Polishing.
Update documentation.
Additional logging for repository bootstrap procedure.
Limit usage of Optional in RepositoryFragment.

Original Pull Request: #3145
2024-09-04 10:49:22 +02:00
Mark Paluch
f7895eb306 Add RepositoryMetadataAccess.
Repositories that detect fragment implementations implementing RepositoryMetadataAccess enable metadata exposure regardless of the exposeMetadata flag.

See: #3090
Original Pull Request: #3145
2024-09-04 10:35:57 +02:00
Mark Paluch
b99db0cf01 Specialize Kotlin property accessors in KotlinBeanInfoFactory.
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 #3140
Closes #3146
2024-09-02 14:36:05 +02:00
Mark Paluch
3e75581336 Split projections document fragment into multiple subfragments.
Closes #3144
2024-08-29 09:58:26 +02:00
Oliver Drotbohm
32d2e5fc5f Polishing.
Related ticket GH-2937.
2024-08-28 22:15:04 +02:00
Oliver Drotbohm
480aa52d1b ProxyHandlerMethodArgumentResolver now avoids matching parameters annotated with Spring annotation.
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.
2024-08-28 22:14:46 +02:00
Oliver Drotbohm
a9fd0d0377 Polishing.
Related ticket GH-3054.
2024-08-27 12:50:44 +02:00
Yanming Zhou
e074fcc2dd Avoid registering a SpringDataWebSettings bean by default.
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.
2024-08-27 12:50:29 +02:00
Mark Paluch
e994f6b60f Update GitHub Actions.
See #3098
2024-08-21 09:28:21 +02:00
Kuyho Chung
98c22d09aa Corrected the definition of coroutines.
Closes #3136
2024-08-15 14:21:04 +02:00
Oliver Drotbohm
ecc40056c0 Avoid affecting serialization of custom Page implementations in legacy mode.
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.
2024-08-15 08:38:21 +02:00
Christoph Strobl
2cc8d04c92 Update code snippet in documentation.
Original Pull Request: #3093
2024-08-08 13:52:55 +02:00
Mark Paluch
22fa3c6506 Polishing.
Refine grammar, line breaks, typos.

Original Pull Request: #3093
2024-08-08 13:51:48 +02:00
Christoph Strobl
3b667b90be Update documentation and fix nullable annotations.
Original Pull Request: #3093
2024-08-08 13:50:52 +02:00
Mark Paluch
658c04d00e Rename RepositoryMethodMetadata and move it to an interceptor.
Rename RepositoryMethodMetadata to RepositoryMethodContext.
Add flags to enable method metadata exposure.

See: #3090
Original Pull Request: #3093
2024-08-08 13:49:06 +02:00
Christoph Strobl
647d9fd949 Provide RepositoryMethodMetadata during method invocation.
Provide context during repository method invocation to potential consumers.

See: #3090
Original Pull Request: #3093
2024-08-08 13:46:55 +02:00
Mark Paluch
4df7a164e9 Consider fragments and repository contributions via spring.factories.
Closes: #3090
Original Pull Request: #3093
2024-08-08 13:45:01 +02:00
Mark Paluch
201657e78a Polishing.
Update javadoc and fix formatting.

Original Pull Request: #3093
2024-08-08 13:44:05 +02:00
Mark Paluch
b6262b212e Upgrade to Maven Wrapper 3.9.8.
See #3134
2024-08-08 10:22:00 +02:00
Mark Paluch
43e0dc1da1 Update CI properties.
See #3098
2024-08-08 10:20:10 +02:00
Mark Paluch
1cdfb2e533 Fix KotlinCopyMethod detection for single-association property classes.
KotlinCopyMethod.shouldUsePublicCopyMethod(…) now considers single-association arrangements. Also, the method now early exists if pre-conditions aren't met.

Closes #3131
2024-08-06 15:14:35 +02:00
Oliver Drotbohm
0ba3937617 Explicitly reject invalid aggregate event registrations during publishing.
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.
2024-08-06 09:02:18 +02:00
Christoph Strobl
1f347dce69 Add missing native image runtime hints for Jackson Page serialization.
Closes #3117
Original pull request: #3119
2024-08-05 14:53:03 +02:00
Eric Haag
d5608934b7 Migrate build to Spring Develocity Conventions extension.
* Migrate build to Spring Develocity Conventions extension.

* Adopt Develocity environment variables.

Closes #3130
2024-08-01 11:45:49 +02:00
Christoph Strobl
431a1f5179 Fix property lookup for projections on Kotlin types.
This commit makes sure to use the target objects method to determine the property used for the projection.

Closes: #3127
Original pull request: #3129
2024-08-01 11:43:02 +02:00
Mark Paluch
2ee3a866a6 Bundle Javadoc with Antora documentation site.
Closes #3128
2024-07-31 09:27:07 +02:00
Mark Paluch
bb833a145c Revise Repositories initialization.
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
2024-07-26 10:34:13 +02:00
Mark Paluch
3dd3932d49 Polishing.
Simplify assertions.

See #3125
2024-07-23 11:35:48 +02:00
Mark Paluch
8a8c92e503 Consider declaring class when evaluating method return type for query method post-processing.
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
2024-07-23 11:35:47 +02:00
Mark Paluch
71484159cf Introduce Parameter.getRequiredName() method.
Add getRequiredName to shortcut parameter name discovery and fast-fail in cases where the parameter name is required.

Closes #3124
2024-07-23 09:18:02 +02:00
Jens Schauder
9ab34d8672 Further refactoring of PageableExecutionUtils.
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
2024-07-01 12:57:57 +02:00
erie0210
47109d4bb1 Refactor PageableExecutionUtils.
Closes #3103
Original pull request #3113
2024-07-01 12:51:17 +02:00
Christoph Strobl
ec3ba10954 Polishing.
Delegate annotation attribute resolution to configured BeanNameGenerator resolving method and test for enabling reactive repositories.

Original Pull Request: #3083
2024-06-26 11:07:15 +02:00
Mark Paluch
2a8402c0c3 Polishing.
Use constants where possible.

Original Pull Request: #3083
2024-06-26 11:06:24 +02:00
Mark Paluch
a37a700b59 Add support for BeanNameGenerator configuration in Enable…Repositories.
We now accept a dedicated BeanNameGenerator in our Enable…Repositories annotations to override the importBeanNameGenerator.

Closes: #3082
Original Pull Request: #3083
2024-06-26 11:05:55 +02:00
Mark Paluch
a115ee6a44 Filter delegated properties for Kotlin data classes.
We now filter delegated properties (such as lazy) from being managed as persistent properties.

Closes #3112
2024-06-24 11:51:49 +02:00
Mark Paluch
df2276a19d Remove Slack notification.
See #3110
2024-06-20 13:52:45 +02:00
Mark Paluch
a905bb2120 Switch to Broadcom docker proxy.
Closes #3110
2024-06-20 13:52:33 +02:00
Mark Paluch
5c120dde29 Polishing.
Fix snapshot repository URL.

See #3097
2024-06-18 11:38:27 +02:00
Mark Paluch
2bed1f2ee5 Ignore getters for Kotlin types deviating from Java Beans spec.
We now ignore Kotlin getters that are either static methods or would require additional arguments.

Closes #3109
2024-06-18 11:33:03 +02:00