We now provide a getEntityInformation(RepositoryMetadata) customization hook for EntityInformation creation as several modules require access to RepositoryMetadata details (such as the Id type).
Closes#3288
Refine local variable handling to logical and physical naming where the logical name is used in AOT contributor code while the physical name is rendered.
See #3270
Original pull request: #3271
Add a variable name factory that considers predefined names and resolves name clashes.
Expose variable name clash resolution via the generation context of a single method.
Closes#3270
Original pull request: #3271
Turn newly introduced methods on ParameterAccessor into default ones allowing modules to pick up changes at their own pace.
Add issue references and missing documentation.
Align Search- and GeoResults toString method with Page.
Original Pull Request: #3285
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.