Restoring bean registration while keeping the optional nature of AuditorAware in the Reactive-/AuditingHandler.
The changes done previously caused AOT code generation to fail with:
org.springframework.aot.generate.UnsupportedTypeValueCodeGenerationException: Code generation does not support org.springframework.beans.factory.config.AutowiredPropertyMarker
See: #3177
Our domain types Sort and ExampleMatcher were designed to use property paths forming a conceptual cycle between the mapping and domain package.
By moving PropertyPath support and related types (TypeInformation, wrapper and collection infrastructure) into a newly created core package we're resolving the design cycles resulting in an improved design reflecting the actual intended dependencies.
Types moved from org.springframework.data.mapping to org.springframework.data.core:
* PropertyPath
* PropertyReferenceException
Types moved from org.springframework.data.util to org.springframework.data.core:
* CustomCollections and CustomCollectionRegistrar
* NullableWrapper
* NullableWrapperConverters
* ReactiveWrappers
* TypeInformation
Closes#3393
Use autowired properties for AuditorAware and DateTimeProvider when explicit references are not provided
Closes: #3177
Original pull request: #3385
Signed-off-by: JaeYeon Kim <ghgh415263@naver.com>
Refine KotlinInstantiationDelegate design, improve encapsulation to avoid handing in and out values from lookups.
Replace stream usage with loops, remove unused code, avoid duplicate parameter lookups.
See #3389
Original pull request: #3390
Attempt two-pass constructor detection in KotlinInstantiationDelegate to detect private constructors that are not synthetic ones.
See #3389
Original pull request: #3390
Add two test cases to demonstrate a bug in Kotlin constructor resolution when dealing with private constructors.
Closes#3389
Original pull request: #3390
Signed-off-by: Edward Poot <edwardmp@gmail.com>
Make sure to use the raw type or java.lang.Object for unresolvable generic method parameters while retaining the type variable in the method signature.
See: #3374