Commit Graph

2505 Commits

Author SHA1 Message Date
Oliver Drotbohm 81d179c8f7 Polishing.
Reorder methods according to conventions. More speaking names for the newly introduced type lookup methods.

Issue #2517.
2022-02-14 14:30:28 +01:00
nexx512 d832052625 Fixed resolving generic types for Vavr maps.
Issue #2517.
2022-02-14 14:30:23 +01:00
Oliver Drotbohm f933b4562e 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 10:31:29 +01:00
nexx512 5b568953e9 Consider Vavr collections to be collection like in TypeInformation.
Issue #2511.
2022-02-14 10:31:28 +01:00
Oliver Drotbohm 44a472c695 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-14 10:02:34 +01:00
Mark Paluch f52bc25046 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:21:25 +01:00
Mark Paluch 2bf30b6605 Upgrade to XMLBeam 1.4.22.
Closes #2545
2022-02-10 11:01:38 +01:00
Mark Paluch 1762eada06 Polishing.
Extract artifactory credentials into properties file.

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

See #2541
2022-02-02 10:36:34 +01:00
Greg L. Turnquist 52d89767f9 Externalize build properties.
See #2541.
2022-01-31 16:40:20 -06:00
Mark Paluch ca5676d904 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:43 +01:00
Mark Paluch 8e8ce00750 Refine Coroutine wording around when to use suspend in method declarations.
Closes #2503
2022-01-25 11:08:46 +01:00
Mark Paluch ca6c0185e4 Document dynamic projections parameter detection.
Closes #2510
2022-01-25 09:50:29 +01:00
Christoph Strobl 89e092ed32 After release cleanups.
See #2529
2022-01-18 09:21:32 +01:00
Christoph Strobl 341b1b89eb Prepare next development iteration.
See #2529
2022-01-18 09:21:29 +01:00
Christoph Strobl 0a456307d4 Release version 2.7 M2 (2021.2.0).
See #2529
2.7.0-M2
2022-01-18 09:09:34 +01:00
Christoph Strobl fadeb2e29a Prepare 2.7 M2 (2021.2.0).
See #2529
2022-01-18 09:08:59 +01:00
yelis913 cd26bff381 Add missing verb to the error message.
Closes #2524
2022-01-17 11:15:00 +01:00
Christoph Strobl 411ce1c5f4 After release cleanups.
See #2497
2022-01-14 11:08:02 +01:00
Christoph Strobl 442d2d2ec9 Prepare next development iteration.
See #2497
2022-01-14 11:07:59 +01:00
Christoph Strobl f4dc6af2ed Release version 2.7 M1 (2021.2.0).
See #2497
2.7.0-M1
2022-01-14 10:58:16 +01:00
Christoph Strobl c3cdebf339 Prepare 2.7 M1 (2021.2.0).
See #2497
2022-01-14 10:57:50 +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
Mark Paluch caa8c6afc5 Refactor PropertyFilterSupport into EntityProjectionIntrospector.
Original Pull Request: #2420
2021-12-13 13:00:59 +01:00
Mark Paluch 9948fefe69 Provide class for inspecting nested projections.
Original Pull Request: #2420
2021-12-13 13:00:20 +01:00
heowc 8969a55c27 Add @Nullable to ParametersParameterAccessor.getValue().
Add missing Override and Nullable annotations. Update Javadoc to mention correct return value.

Closes #2506
2021-12-13 10:53:59 +01:00
Mark Paluch ea335f06ef Polishing.
Add missing override annotations.

See #2508
2021-12-09 11:18:51 +01:00
Mark Paluch 6a52f274f6 Introduce configuration of class loader in SimpleTypeInformationMapper.
We now support configuration of the class loader in SimpleTypeInformationMapper to use a configured class loader instead of falling always back to the default/contextual class loader. In arrangements where the contextual class loader isn't able to provide access to the desired classes (e.g. parallel Streams, general Fork/Join Thread usage) the contextual class loader may not have access to the entity types. By implementing BeanClassLoaderAware, we can now propagate a configured class loader.

Closes #2508
2021-12-09 11:17:46 +01:00
Mark Paluch ef522f8e9c Polishing.
Extract duplicate calls to findAnnotation(…) into static helper methods.

See #2500
2021-12-08 14:04:36 +01:00
XenoAmess ca723d11c7 Use AnnotationUtils.findAnnotation(…) instead of AnnotatedElement.isAnnotationPresent(…).
Enable use of meta annotations by leveraging MergedAnnotations.

Closes #2500
2021-12-08 10:15:06 +01:00
Mark Paluch 8bd81a796d Fix argument expansion in RepositoryFactorySupport logging.
Closes #2502
2021-12-07 09:32:51 +01:00
Mark Paluch 788457c901 Migrate off SLF4J to Spring JCL.
Closes #2496
2021-11-16 10:48:56 +01:00
Jens Schauder 1040452c62 After release cleanups.
See #2484
2021-11-12 10:59:43 +01:00
Jens Schauder 51fd81eca1 Prepare next development iteration.
See #2484
2021-11-12 10:59:41 +01:00
Jens Schauder ba84e875ff Release version 2.6 GA (2021.1.0).
See #2484
2.6.0
2021-11-12 10:49:36 +01:00
Jens Schauder 153108a3af Prepare 2.6 GA (2021.1.0).
See #2484
2021-11-12 10:49:15 +01:00
Mark Paluch 55b83dfa83 Refine documentation for PageableExecutionUtils.
Closes #2492
2021-11-09 14:48:42 +01:00
Oliver Drotbohm c866b42025 Polishing.
A few further tweaks: ClassTypeInformation now never unwraps the user type to consistently work with the type originally presented in the lookup. That allows us to get rid of the custom equals(…)/hashCode() methods and removes the need to deal with original and user type in the same CTI instance.

The augmented caching of PersistentEntities in AbstractMappingContext now primarily happens in doAddPersistentEntity(…). We still need to implement a cache manipulation for the case that a user type has caused the creation of a PersistentEntity first and we see a lookup for the proxy type later. Before actually processing the TypeInformation we now try to lookup an already existing PersistentEntity for the user type and augment the cache if one was found.

See #2485
Original pull request: #2486.
2021-10-27 12:19:15 +02:00
Mark Paluch ac9d11638c Polishing.
Remove isProxyTypeInformation from TypeInformation. Use computeIfAbsent to fall back to user type information when attempting to add a entity to the MappingContext.

See #2485
Original pull request: #2486.
2021-10-27 09:19:36 +02:00
Christoph Strobl c30f3fc8af Create PersistentEntities only for user class in case of proxy instance.
This commit makes sure to only create a PersistentEntity for an actual user type. Therefore ClassTypeInformation now considers the given type and not only the user one for both equals and hashcode. This makes sure we can distinguish TypeInformation for a proxy from the one of a user class.
The AbstractMapping context will take care of unpacking proxied types and registering the created entity for both the user as well as the proxy type information.
Prior to this commit build time generated proxy instances would have been able to pollute the context depending on the order they had been served by the initial entity set.

Closes #2485
Original pull request: #2486.
2021-10-27 09:19:36 +02:00
Mark Paluch 69397a11b2 Polishing.
Reduce test element visibility, remove unused constant.

See #2472
2021-10-19 14:31:20 +02:00
Mark Paluch 7c1886201c Consider nested property paths containing a number.
PropertyPath now considers nested property paths (userLastname2 -> user.lastname2) that contain or end with a number.

Closes #2472
2021-10-19 14:31:20 +02:00
Mark Paluch 96ad5d7fb0 After release cleanups.
See #2462
2021-10-18 13:55:41 +02:00
Mark Paluch 99e55bf6cf Prepare next development iteration.
See #2462
2021-10-18 13:55:38 +02:00