Associate Repository Bean Definition with RepositoryConfiguration and RepositoryConfigurationExtension attributes to capture configuration details such as the module name or the configuration source.
Introduce RepositoryFragmentsContributor to provide an abstraction for structural fragment implementation allowing to describe the implementation type instead of requiring the implementation object.
Obtain repository fragments from a RepositoryFragmentsContributor (either the configured one or one from a RepositoryFactoryBean).
Closes: #3279
Original Pull Request: #3282
Add module identifier and base repository implementation properties.
Fix fragment function previously overriding already set property due to name clash.
Extend tests for bean definition resolution and code block creation.
See: #3279
Original Pull Request: #3282
Introduce RepositoryFragmentsFunction and a collection of functions to provide a well-formed contract.
Use RepositoryMetadata from initialized RepositoryFactoryBean.
See #3265
We now provide infrastructure to generate AOT repository method code that implements Query method behavior.
No longer use spring.factories but write some custom bean config code so that one of the properties can provide an instance of the generated repository.
Closes#3265
We now use Nullness.forMethodParameter(…) to introspect method return types and argument types for nullness in addition to Spring's NonNullApi and JSR-305 annotations.
Closes#3100
We deprecated `ClassUtils` in the repo.utils package and introduced a slimmer variant in o.s.d.util. Also, ReflectionUtils hosts now several methods that have been in ClassUtils along with an improved method naming (find vs. get in combination with return value semantics).
CastUtils is deprecated as we do not widely use it.
The ProxyHandlerMethodArgumentResolver now avoids matching multipart parameters annotated with @ModelAttribute. This allows multipart parameters to be handled by RequestParamMethodArgumentResolver which properly handles multipart arguments.
Also, the `@ProjectedPayload` annotation can now be used on parameters. This prepares for the upcoming removal of support for non-annotated projections.
Fixes#3258
Related tickets #2937
Original pull request: #3277
Signed-off-by: Chris Bono <chris.bono@broadcom.com>