Commit Graph

2536 Commits

Author SHA1 Message Date
Oliver Drotbohm
e7292279bf Fluent registration API for PropertyValueConverters.
Introduce a builder API to register PropertyValueConverters using simple (Bi)Functions. Additional methods on ValueConversionContext to enable advanced use cases in converter implementation. Tweak generics of VCC to be able to expose store-specific PersistentProperty implementations via the context.

See #1484
Original pull request: #2566.
2022-03-18 14:54:17 +01:00
Christoph Strobl
caf49ad739 Add support for property-specific converters.
Closes #1484
Original pull request: #2566.
2022-03-18 14:54:15 +01:00
Mark Paluch
9a3a38dc22 Accept Object values in QuerydslPredicateBuilder.
We now accept Object-typed values to allow broader reuse of QuerydslPredicateBuilder. The conversion into the actual value considers the origin type and checks assignability before employing the ConversionService.

Closes #2573
2022-03-10 10:22:28 +01:00
Mark Paluch
8b3e4d44f0 Polishing.
Lazily make methods and fields accessible. Introduce invoke method to AnnotationDetectionMethodCallback.

See #2569
2022-03-02 14:54:33 +01:00
Mark Paluch
6bc28c118c Consider annotated methods in AnnotationRevisionMetadata.
We now detect annotated methods.

Closes #2569
2022-03-02 14:54:26 +01:00
Mark Paluch
8e241b1938 Update documentation of AbstractEntityInformation.
Align documentation with the code behavior as the behavior was changed but the documentation was not updated with the previous change.

Closes #2567
2022-03-02 08:52:37 +01:00
Mark Paluch
10a437c29e Update CI properties.
See #2530
2022-02-22 14:10:52 +01:00
Mark Paluch
8f4ddc194b Clarify Javadoc for FallbackPageable in PageableHandlerMethodArgumentResolverSupport.
Closes #2551
2022-02-17 14:36:45 +01:00
Oliver Drotbohm
92d8de08e4 Simpler check to avoid primitive conversion in ConvertingPropertyAccessor.
We now use Spring's ClassUtils.isAssignable(…) directly. Unit tests to verify that conversion is skipped for primitive / boxed scenarios.

See #2546.
2022-02-17 14:36:45 +01:00
Christoph Strobl
01291619f4 Update copyright year to 2022.
See: #2552
2022-02-17 12:46:14 +01:00
Oliver Drotbohm
21777293cc AbstractPersistentProperty.isMap() now delegates to underlying TypeInformation.
Issue #2549
2022-02-16 15:53:57 +01:00
Oliver Drotbohm
557465bf0a Introduce standard DtoInstantiatingConverter.
Move simple Spring Converter implementation that allow to create DTOs from a source object previously copied amongst a variety of store modules.

Issue #2476.
2022-02-16 08:56:02 +01:00
Oliver Drotbohm
ac9f99fc54 Polishing of annotation model for object creators.
Move to @PersistenceCreator as canonical annotation to explicitly express constructors and methods to be used to create domain object instances from persistence operations. Removed @FactoryMethod as it's not needed anymore. @PersistenceConstructor is now deprecated.

Renamed EntityCreatorMetadata(Support|Discoverer) to InstanceCreatorMetadata(Support|Discoverer) to avoid further manifestation of the notion of an entity in the metamodel as it's not used to only handle entities.

Issue #2476.
2022-02-15 17:26:00 +01:00
Mark Paluch
c4a324e3cf Introduce support to create domain objects via factory methods.
Issue #2476.
2022-02-15 17:04:47 +01:00
Greg L. Turnquist
0ee9c55f05 Update CI properties.
See #2530
2022-02-15 09:00:21 -06:00
Oliver Drotbohm
8bb88ffce1 Polishing.
Reorder methods according to conventions. More speaking names for the newly introduced type lookup methods.

Issue #2517.
2022-02-14 15:15:39 +01:00
nexx512
8d2a3466ef Fixed resolving generic types for Vavr maps.
Issue #2517.
2022-02-14 15:15:39 +01:00
Oliver Drotbohm
8ebe52dfd5 Complete Vavr collection detection on TypeInformation and CustomConversions.
Moved Vavr collection converters into a type in the utility package. Register the converters via CustomConversions.registerConvertersIn(…) to make sure that all the Spring Data object mapping converters automatically benefit from a ConversionService that is capable of translating between Java-native collections and Vavr ones.

Issue #2511.
2022-02-14 15:15:36 +01:00
nexx512
23c153aa55 Consider Vavr collections to be collection like in TypeInformation.
Issue #2511.
2022-02-14 14:45:57 +01:00
Mark Paluch
68bfa9af0e Performance improvements in ReactiveWrappers and ConvertingPropertyAccessor.
We now cache whether types are reactive wrappers and bypass the ConversionService for assignable primitive values.

Closes #2546
2022-02-11 15:22:03 +01:00
Mark Paluch
9146357b51 Polishing.
Let List… interface variants extend their base parent so that List-based variants participate in the type hierarchy.

See #2538
Original pull request: #2538.
2022-02-11 10:37:46 +01:00
Jens Schauder
f92a117b15 Add List-based repository interfaces.
This introduces the interfaces
* `ListCrudRepository`
* `ListQuerydslPredicateExecutor`
* `ListQueryByExampleExecutor`

They return `List` instead of `Iterable` when returning multiple entities.
They can be used in the same way the interfaces without the `List` prefix can be used.

Closes #2535.
Original pull request: #2538.
2022-02-11 10:37:35 +01:00
Jens Schauder
37eee0e35d Decouple Paging and Sorting repositories from CrudRepository.
This way they can be combined with different variants of CrudRepositories.

This affects
`PagingAndSortingRepository`, `ReactiveSortingRepository`, `CoroutineSortingRepository`, and `RxJavaSortingRepository`.

Any repository implementing those interfaces now needs to also implement a suitable CRUD repository, or needs to manually add the methods from a CRUD repository as needed.

Closes #2537
Original pull request: #2540.
2022-02-11 10:26:59 +01:00
Mark Paluch
c9cdc93809 Upgrade to XMLBeam 1.4.22.
Closes #2545
2022-02-10 11:01:42 +01:00
Mark Paluch
dab27e14b6 Polishing.
Extract artifactory credentials into properties file.

See #2541
2022-02-04 09:57:26 +01:00
Mark Paluch
e099741b7f Polishing.
Extract docker credentials into properties file.

See #2541
2022-02-02 10:39:38 +01:00
Greg L. Turnquist
92eedc5530 Externalize build properties.
See #2541.
2022-02-02 10:39:26 +01:00
Mark Paluch
ce9fcf9eb7 Refine PropertyReferenceException message.
Use single-quotes to indicate which elements belong to the underlying type and which are part of the textual message.

Closes #2395
2022-01-25 14:42:57 +01:00
Mark Paluch
da64183e61 Refine Coroutine wording around when to use suspend in method declarations.
Closes #2503
2022-01-25 11:08:36 +01:00
Mark Paluch
13f9657561 Document dynamic projections parameter detection.
Closes #2510
2022-01-25 09:50:57 +01:00
yelis913
05260bf5d7 Add missing verb to the error message.
Closes #2524
2022-01-17 11:15:46 +01:00
Mark Paluch
eb4eecdc99 After release cleanups.
See #2525
2022-01-14 14:43:22 +01:00
Mark Paluch
73e4c56289 Prepare next development iteration.
See #2525
2022-01-14 14:43:19 +01:00
Mark Paluch
463468c9fe Release version 3.0 M1 (2022.0.0).
See #2525
2022-01-14 14:35:09 +01:00
Mark Paluch
717db1c073 Prepare 3.0 M1 (2022.0.0).
See #2525
2022-01-14 14:34:47 +01:00
Jens Schauder
38f50e3da8 Remove Eclipse Non-Javadoc comments.
Closes #2522
2022-01-13 18:51:02 +01:00
Mark Paluch
8ec01cb816 Fix spliterator size hint in CloseableIterator.spliterator().
We now report -1 as size to avoid zero-size results for count() or toList() operators.

Closes #2519
2022-01-13 18:50:55 +01:00
Mark Paluch
a56ef010da Remove own class reading infrastructure in favor of extensions to AnnotationMetadata.
We now remove fully our own class-reading visitors as AnnotationMetadata exposes getDeclaredMethods.
MethodsMetadataReaderFactory and MethodsMetadataReader remain deprecated bridging return types to retain backward compatibility.

Closes #2520
2022-01-13 18:49:23 +01:00
Christoph Strobl
2ee509b707 Remove invalid imports from types used for ASM metadata parsing.
See #2498
2022-01-13 18:49:23 +01:00
Mark Paluch
227c50b02d Introduce local copies of removed Spring Framework API for ASM metadata parsing.
Should be removed after revisiting our design.

See #2498
2022-01-13 18:49:23 +01:00
Mark Paluch
54c96dde8b Move off deprecated Spring Framework API.
See #2499
2022-01-13 18:49:23 +01:00
Mark Paluch
c735b58607 Migrate code to Java 17 style.
Use var instead of explicit local types where applicable. Use pattern variable instead instanceof and cast. Prefer loops and nullable types over Stream and Optional. Convert classes to records where applicable.

See #2465
2022-01-13 18:49:07 +01:00
Mark Paluch
d4036ec0a9 Drop support for RxJava 2.
Closes #2469
2022-01-13 18:45:48 +01:00
Mark Paluch
20a1220cd1 Drop support for RxJava 1.
Closes #2469
2022-01-13 18:45:48 +01:00
Mark Paluch
5a59e43745 Migrate to Jakarta EE 9.
Rename javax imports to jakarta, switch to Jakarta API artifacts.

Closes #2464
2022-01-13 18:45:48 +01:00
Jens Schauder
7cfc0c2a8c Use the correct MappingContext for constructing the PersistentEntities.
See #2467
2022-01-13 18:45:48 +01:00
Jens Schauder
fcf786b4ae Stop using deprecated constructor of AuditHandler for XML configuration.
Introduces PersistentEntitiesFactoryBean.

Closes #2467
2022-01-13 18:45:48 +01:00
Mark Paluch
e75bb40b2e Polishing.
See #2423
2022-01-13 18:45:48 +01:00
Mark Paluch
2618221115 General removal of deprecated API.
See #2466
2022-01-13 18:45:48 +01:00
Mark Paluch
aecdf5001a Remove deprecated EntityInstantiator in convert package in favor of instantiators in mapping.model.
See #2466
2022-01-13 18:45:47 +01:00