Commit Graph

2555 Commits

Author SHA1 Message Date
Mark Paluch
21e4fd5ffb Allow using Range with Comparator.
Remove Comparable requirement for general Range usage. Comparable is only required for the contains(…) check. Alternatively, accept a Comparator.

Closes #2571
2022-03-28 15:40:29 +02:00
Mark Paluch
0e5e869cbf Reintroduce explicit local variable types.
We now reinstate local variable types instead of var as general var usage removes contextual detail that cannot be omitted generally.

See #2465
2022-03-28 08:55:29 +02:00
Mark Paluch
c85c4ef2ed Polishing.
Tweak Javadoc comments.

See #2585
2022-03-25 13:37:36 +01:00
Mark Paluch
ef5defe405 Retain case-sensitivity and null-handling when changing Sort direction.
We now retain case-sensitivity and null-handling configuration when changing the entire Sort direction.

Closes #2585
2022-03-25 13:35:49 +01:00
Mark Paluch
83a1e74945 Update build trigger.
See #2582
2022-03-23 11:25:13 +01:00
Mark Paluch
f5ee277a6e Gracefully skip non-assignable lambda callbacks on Java 18.
We now consider IllegalArgumentException as marker for incompatible lambda payload that was introduced with Java 18's reflection rewrite that uses method handles internally.

Closes #2583
2022-03-23 10:46:09 +01:00
Mark Paluch
35418205e7 After release cleanups.
See #2581
2022-03-22 14:07:38 +01:00
Mark Paluch
5005584402 Prepare next development iteration.
See #2581
2022-03-22 14:07:36 +01:00
Mark Paluch
ab4cdbef8d Release version 3.0 M3 (2022.0.0).
See #2581
2022-03-22 14:00:23 +01:00
Mark Paluch
380a3d6f62 Prepare 3.0 M3 (2022.0.0).
See #2581
2022-03-22 14:00:02 +01:00
Mark Paluch
e0d0470c7b After release cleanups.
See #2530
2022-03-21 16:44:41 +01:00
Mark Paluch
ab728d8c59 Prepare next development iteration.
See #2530
2022-03-21 16:44:39 +01:00
Mark Paluch
eab7721bf5 Release version 3.0 M2 (2022.0.0).
See #2530
2022-03-21 16:35:08 +01:00
Mark Paluch
2ad123f68d Prepare 3.0 M2 (2022.0.0).
See #2530
2022-03-21 16:34:36 +01:00
Mark Paluch
89a6c73c3a Polishing.
Fix Javadoc.

See #2566
2022-03-18 15:15:30 +01:00
Mark Paluch
c73c0bfd6d Polishing.
Consistent wording for pageable and sort arguments.

See #2574
2022-03-18 15:09:16 +01:00
Diego Krupitza
1ea8d09b38 Update documentation for repository Pageable and Sort arguments.
Replace outdated `null` acceptance for `Pageable` with `Pageable.unpaged()`
 `QueryByExampleExecutor#findAll(Example<S> example, Pageable pageable)` should does not accept null values since there is `Pageable.unpaged()`. Furthermore, the same applies to `PagingAndSortingRepository#findAll(Pageable pageable)`.

Related ticket: spring-projects/spring-data-jpa/issues/2464
Closes #2574
2022-03-18 15:07:51 +01:00
Mark Paluch
dda102ad7f Polishing.
Increase visibility of converter builders.

Refine generics naming towards DV/SV instead of A/B to easier identify store-native values and domains-specific values in the API. Refactor PropertyValueConversions.hasValueConverter into a non-default method.

Tweak documentation.

See #1484
Original pull request: #2566.
2022-03-18 14:54:47 +01:00
Christoph Strobl
228431534f Refine API and property-converter documentation.
See #1484
Original pull request: #2566.
2022-03-18 14:54:37 +01:00
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