Commit Graph

3076 Commits

Author SHA1 Message Date
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
Mark Paluch
582319a5fe Remove support for Joda Time and ThreeTenBackport.
Closes #2276
2022-01-13 18:45:47 +01:00
Mark Paluch
f417c4ca13 Upgrade to Java 17.
Avoid usage of encapsulated tests as dummies. Add dependency override for ASM dependencies.

Use Java 17 in CI pipeline.

Closes #2465
2022-01-13 18:45:47 +01:00
Mark Paluch
33428fe5ad Prepare Spring Data 3.0 branch.
Closes #2463.
2022-01-13 18:45:47 +01:00
Mark Paluch
3f44d268b6 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-03 13:50:33 +01:00
Jens Schauder
6cf2634a64 Fixed dependency cycle.
Closes #2514
2021-12-14 15:06:14 +01:00
Christoph Strobl
ecec2e5666 Polishing.
Replace boolean flag with enum, assert open vs. closed projection and update javadoc.

Original Pull Request: #2420
2021-12-13 13:03:18 +01:00
Mark Paluch
a63774e6ec Add support for properties using deep map-in-map/list-in-map nesting.
Original Pull Request: #2420
2021-12-13 13:02:52 +01:00
Mark Paluch
0744580766 Move EntityProjection from inner class to top-level class.
Original Pull Request: #2420
2021-12-13 13:02:25 +01:00
Mark Paluch
0c80e9fa46 Add Predicates utility.
Original Pull Request: #2420
2021-12-13 13:02:01 +01:00
Mark Paluch
b189240aaf Polishing.
Original Pull Request: #2420
2021-12-13 13:01:27 +01:00