Replace qualified class name access of inner classes with simple names and imports.
Remove Java 8 guards. Extend supported temporal types in Jsr310Converters. Remove superfluous converter annotations.
Simplify tests.
See #2677
Original pull request: #2681
We now appropriately handle OffsetDateTime and OffsetTime the same as all other java.time types, supported as simple types on Spring application (persistent) entity classes.
Closes#2677
Make fields final where possible. Reintroduce end of line comment markers to avoid reformatting into unreadable format. Replace HashSet per command instance with String to reduce memory footprint.
Tweak Javadoc wording to represent what we actually expect. Reorder methods.
See #2640
Original pull request: #2644
We now allow the internally created Jackson ObjectMapper to be customized and further configured after construction of the GenericJackson2JsonRedisSerializer when a user does not explicitly provide a custom ObjectMapper during construction. Even when providing a custom ObjectMapper, not all configuration applied by the GenericJackson2JsonRedisSerialzier (such as (standard) type resolution) to the internal ObjectMapper would get applied to the user-provided ObjectMapper as well.
Closes#2601
* Cleanup source code in Jackson2HashMapper; Edit Javadoc.
* Add test cases for the un/flattened mapping of an Object with a timestamp (LocalDateTime) as provided by the user in Issue #2593.
Closes#2593
Once again, the SD Redis Jackson2HashMapper can now de/serialize Objects with BigDecimal/BigInteger values along with java.time types, such as java.time.LocalDateTime.
Additionally, splits the unit tests for flattening and unflattening of the hash mapping into 2 separate test classes to be picked up in the SD Redis test suite.
Resolves#2593
After this commit, LettuceObservationContext.setParentObservation() is called right after Context rather than Observation created, then Context.getParentObservation() could be used in ObservationPredicate to determine whether Observation should be created.
Fixes#2591
Original pull request: #2592
We now use directly JedisCluster methods instead of using our command executor routing as JedisCluster exposes the methods and we no longer require our own command routing.
Closes#2589
Now it is possible to construct a new, custom default RedisCacheConfiguration from an existing, default RedisCacheConfiguration.
This is useful in a Spring Boot context using the RedisCacheManagerBuilderCustomizer and acquiring access to the default RedisCacheConfiguration, which likely originated from Spring Boot Redis CacheProperties.
Resolves#2583
Reuse condition objects in command and version condition extensions.
Shut down ClientResources via ShutdownQueue and ensure shared client resources usage.
Add close support to our MethodArgumentsProvider. Reuse LettuceTestClientConfiguration for test client config settings.
Closes#2575
Delegate RedisClientProvider.getClient() across connection providers. Use SimpleAsyncTaskExecutor as default in ClusterCommandExecutor to avoid ThreadPoolTaskExecutor pollution.
See #2575