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
Decouple RepositoryRegistrationAotContribution and RepositoryRegistrationAotProcessor, introduce support class for AotRepositoryContext implementations to better protect AotRepositoryContext implementations from changes to AotContext.
Remove contribute method from AotTypeConfiguration and move contribution code to AotContext.
Deprecate introspection methods for removal with only a single use in Commons and no usage in other modules.
Add more fine-grained customization hooks to RepositoryRegistrationAotProcessor and remove superfluous context objects that aren't necessary in their context.
Closes: #3267
Original Pull Request: #3367
The getNullable() method had a subtle race condition where the value field
could be read as null after being assigned but before the resolved flag was
set to true. This could occur if another thread read the value between lines
136 and 137.
This change maintains the existing behavior documented in the class Javadoc
that the supplier may be called multiple times under concurrent access, while
fixing the potential for incorrect null returns.
Signed-off-by: jbj338033 <jbj338033@gmail.com>
Closes#3368
We now provide a SPI for libraries that want to provide predicates for AOT processing so that AOT processing not only considers its own rules but also e.g. exclusions from other participants on the class path.
See: #3362
Original Pull Request: #3363
Add generic signature, skip static initializer if not required, access classes in static initializer through constants instead of using forName(…).
See #3365
Customizing EntityInformation has only a single use-case within JPA. All other modules should use customization using the mentioned mechanisms as the underlying MappingContext handles typically IsNew detection but customizing the MappingContext (PersistentEntity) is a deeply involved task.
Closes#3364
Add tests, refine API contracts and reflect it in the documentation, remove methods that seem useful but are rather polluting the API.
Original Pull Request: #3357
Add opinionated builders for return statements and invocations, add introspection type for MethodReturns to reduce checks for e.g. `Optional` and `void` and utilities to construct type names.
Closes: #3357