We now fetch mapping contexts from Iterable<MappingContext> later, when accessing PersistentEntities API to defer potential resolution when e.g. obtaining beans from a BeanFactory.
Closes#3310
The move to Kotlin 2.x introduces warnings in the Kotlin extensions for type arguments tha are not within their bounds (i.e. `Thing<T>` should be `Thing<T : Any>`). This commit fixes these cases and removes the warnings.
Signed-off-by: Chris Bono <chris.bono@broadcom.com>
Closes#3309
Use getPackageName() instead of getPackage().getName(), remove essentially duplicate tests and fix array type handling of Q types by using the arrays component type for assignability checks.
Original Pull Request: #3284
This commit introduces a warning log if a parameter is not annotated with `@ProjectedPayload` that this style is deprecated and that we will drop support for projections if a parameter (or the parameter type) is not explicitly annotated with `@ProjectedPayload`.
Resolves#3300
Original pull request: #3303
Signed-off-by: Chris Bono <chris.bono@broadcom.com>
If the collection type is not a store-native type, we no longer issue a warn log. Converters can be registered for List or Collection types and convert into a different, non-collection type while being a support converter instead of forcing a specific write type.
This is e.g. the case for MongoDB where a List of numbers is converted to the Vector type.
Closes#3306
>> There are no guarantees on the type, mutability, serializability, or thread-safety of the List returned
`Collector.toList()` doesn't guarantee mutability, then passing it to `Collections.reverse()` is not safe.
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
Closes#3304
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