Commit Graph

1156 Commits

Author SHA1 Message Date
John Blum
157f5e4b1d Adds support to lPop or rPop N elements from a Redis List in ReactiveListOperations.
Closes #2692
Original pull request: #2704
2023-09-12 11:08:32 +02:00
John Blum
ea4acad379 Polish enhanced switch statements.
See #2705
Original pull request: #2706
2023-09-11 16:45:59 -07:00
Junghoon Ban
5e23156f78 Change switch statements to switch expressions.
Remove unused default branches.

Closes #2705
Original pull request: #2706
2023-09-11 16:44:10 -07:00
John Blum
e423851f87 Polish for #2696.
Closes #2701
Original pull request: #2696
2023-09-06 17:15:51 -07:00
Mingyuan Wu
b13690c611 Fix wrong asserted code in ConvertingCursor.
Pull Request: #2696
2023-09-06 16:46:15 -07:00
Mark Paluch
f5f0c3b259 Polishing.
Move executor from ClusterConfiguration to connection factories as the executor is a Spring concept that isn't tied to endpoint details or the client config.

Reorder static factory methods after constructors and property accessors after static factory methods. Inline single-line single-use methods that aren't intended as extension hooks for easier readability.

Disable TaskExecutor disposal on ClusterCommandExecutor.destroy().

Remove NonNull annotations as default non-nullability is defined on the package level.

Simplify tests to use integration tests to avoid excessive mocking.

See #2594
Original pull request: #2669
2023-08-17 10:35:15 +02:00
John Blum
8d6ebb4e99 Add configuration for TaskExecutor used by ClusterCommandsExecutor.
This change allows users to leverage the VirtualThread facilities and AsyncTaskExecutor implementations provided in and by the core Spring Framework as part of our Loom support theme.

Closes #2594
Original pull request: #2669
2023-08-17 10:35:15 +02:00
John Blum
2eaf1746da Polishing.
Organize source code and cleanup compiler warnings.

See #2594
Original pull request: #2669
2023-08-17 10:35:14 +02:00
Mark Paluch
76c1830c57 Polishing.
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
2023-08-17 09:14:39 +02:00
John Blum
dc09635cc4 Register Converters for Offset java.time types in JSR310Converters.
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
2023-08-17 08:44:15 +02:00
Mark Paluch
372d26ab21 Polishing.
Use Regex to capture the various styles of CLUSTER NODES endpoint representations.

See #2678
Original pull request: #2679
2023-08-16 11:53:57 +02:00
Sorokin Evgeniy
d1908fdbfc Add support for bracket-less IPv6 addresses to CLUSTER NODES Converter.
Closes #2678
Original pull request: #2679
2023-08-16 11:53:36 +02:00
Mark Paluch
76da57e797 Polishing.
Tweak wording around thread-safety. Include notices in connection factories.

Reformat asciidoc.

See #2653
Original pull request: #2667
2023-08-10 11:08:45 +02:00
John Blum
4bf1d06758 Edit ref docs and Javadoc for connection classes to clearly state the Thread-safety guarantees.
Closes #2653
Original pull request: #2667
2023-08-10 11:08:45 +02:00
John Blum
d5642d9e4a Edit class Javadoc in Redis*Configuration classes.
Additionally, fix a few commpiler warnings and organize instance variables by type.

Closes #2586
2023-08-08 13:40:20 -07:00
Mark Paluch
6207a4f771 Polishing.
Replace topic label with assertion message. Reorder methods to align with Spring style.

See #2662
Original pull request: #2663
2023-08-08 10:28:00 +02:00
John Blum
979fb6ac6d Simplify logic in RedisMessageListenerContainer and supporting classes.
Closes #2662
Original pull request: #2663
2023-08-08 10:28:00 +02:00
John Blum
5d297470d1 Fix spelling in SynchronizingMessageListener.SubscriptionSynchronizion.
Additionally, cleanup compiler warnings.

Closes #2656
Original pull request: #2657
2023-08-08 09:43:20 +02:00
Mark Paluch
0b32e7bed1 Polishing.
Use createMono/createFlux syntax instead of using the template for wrapper creation.

See #2658
Original pull request: #2659
2023-08-07 15:52:01 +02:00
John Blum
00737441fd Rename Function Lambda parameter to match command interface in (Default) ReactiveXxxOperations.
Cleanup compiler warning.

Fix unnatural line breaks.

Closes #2658
Original pull request: #2659
2023-08-07 15:51:33 +02:00
Christoph Strobl
5568ffd818 Polishing
Order imports to match code style. Use one line per sentence in documentation.

Original pull request: #2643
2023-08-01 15:02:14 +02:00
John Blum
dddf3530b9 Add support for TTI expiration in Redis Cache implementation.
We now support time-to-idle (TTI) expiration policies for cache reads.

The TTI implementation is achieved with the use of the Redis GETEX command on Cache.get(key) operations as well as consistently using the same TTL configuration for all cache operations when TTI is enabled and TTL expiration has been configured,
with the use of a TtlFunction or fixed Duration.

Closes #2351
Original pull request: #2643
2023-07-28 10:42:34 +02:00
Christoph Strobl
862e3446bc Use reflection to access internal value in tests.
Original Pull Request: #2647
2023-07-28 10:30:15 +02:00
John Blum
e5cec58a40 Fix RedisCommand.requiresArguments for zero argument length.
Closes #2646
Original Pull Request: #2647
2023-07-28 10:30:15 +02:00
John Blum
59a7266ff7 Polish for RedisSerializationContext.
Closes #2651
Original pull request: #2652
2023-07-27 15:51:31 -07:00
zhoukq
a3e35a3340 Assign 'tuple' to 'stringTuple' in DefaultRedisSerializationContextBuilder.string().
Currently, the builder method incorrectly assigns 'tuple' SerializationPair<String> argument to 'hashValueTuple'.

Closes #2651
Original pull request: #2652
2023-07-27 15:50:29 -07:00
Mark Paluch
377ee1804f Polishing.
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
2023-07-18 10:52:59 +02:00
John Blum
ce8b857a2e Polishing.
Additionally, applied Java 17 syntax, cleaned up compiler warnings, and edited Javadoc.

Closes #2644
Original pull request: #2640
2023-07-18 09:51:52 +02:00
Thach Le
95d5b82ac6 Fix misordered 'final static' modifiers.
Per the Java Language Specification (Java 17; https://docs.oracle.com/javase/specs/jls/se17/html/jls-8.html#jls-8.3.1), 'static' should appear before 'final'.

This is also consistent with source code analysis tools, like Checkstyle, rules: https://checkstyle.sourceforge.io/apidocs/com/puppycrawl/tools/checkstyle/checks/modifier/ModifierOrderCheck.html.

Original pull request: #2640
2023-07-18 09:51:20 +02:00
Mark Paluch
b8a9d5fa0a Polishing.
Use standard assertions. Tweak Javadoc wording.

See #2494
Original pull request: #2645
2023-07-18 09:26:39 +02:00
John Blum
5a12140b49 Make RedisAccessor abstract.
Closes #2494
Original pull request: #2645
2023-07-18 09:26:39 +02:00
Mark Paluch
2e5aed4104 Polishing.
Add documentation for generics. Fix remove() and element() methods to adhere to their contract.

See #2602
Original pull request: #2608
2023-07-13 10:55:55 +02:00
John Blum
a05b25abe5 Adapt RedisList to API changes in Java 21 SequencedCollections.
Closes #2602
Original pull request: #2608
2023-07-13 10:55:55 +02:00
Christoph Strobl
7add798886 Polishing.
Add tests that assert initialization constraints, use early return to default value in case of null and align code format.

Original Pull Request: #2637
2023-07-12 13:53:34 +02:00
Mark Paluch
5d885e24a3 Refine RedisCollectionFactoryBean collection creation.
We now cross-check the existing key type against the specified CollectionType to avoid collection creation that doesn't match the configured CollectionType. If the existing key type doesn't match the configured CollectionType, collection creation fails with a validation error.

Closes #2633
Original Pull Request: #2637
2023-07-12 13:53:03 +02:00
Mark Paluch
9fe32d521e Polishing.
Refine documentation about auto-startup. Set phase to zero to be in the middle between min and max.

See #2635
Original pull request: #2636
2023-07-12 10:43:15 +02:00
Christoph Strobl
d98afb9154 Start RedisConnectionFactory through afterPropertiesSet.
This commit restores the behaviour of RedisConnectionFactories eager initialization via afterPropertiesSet.
Additionally it is now possible to modify the lifecycle phase.

Closes #2635
Original pull request: #2636
2023-07-12 10:42:26 +02:00
Christoph Strobl
d25de89fec Polishing.
Stick to TtlFunction & nullability contracts.
Update deprecation with since tag.

Original Pull Request: #2597
2023-07-11 14:50:33 +02:00
John Blum
fe88d31d09 Reinstate RedisCacheConfiguration.getTtl().
Reintroduce and deprecate RedisCacheConfiguration.getTtl for backwards compatibility.

Closes #2628
Original Pull Request: #2597
2023-07-11 14:49:26 +02:00
Mark Paluch
65f628ab76 Polishing.
Reorder factory fields according to immutable configuration, mutable configuration and connection factory state. Reorder methods and switch Jedis references to its current GitHub repository.

Refine assertions. Update documentation.

See: #2503
Original pull request: #2627
2023-07-10 16:27:17 +02:00
Christoph Strobl
908a4d0d8a Migrate RedisConnectionFactory to Lifecycle beans.
Closes: #2503
Original pull request: #2627
2023-07-10 16:27:16 +02:00
John Blum
adba001f74 Simplify RedisClient and LettuceConnectionProvider creation.
Closes #2621
2023-06-27 13:35:04 -07:00
John Blum
647e48742a Make use of pattern variable in equals(:Object) method.
Closes #2621
2023-06-26 17:21:50 -07:00
John Blum
4637323c80 Edit Javadoc in RedisConnection.
Closes #2586
2023-06-26 17:18:05 -07:00
John Blum
c863f9b914 Rename RedisAssertions.requiredObject(..) to requireNonNull(..).
Closes #2621
2023-06-26 16:27:07 -07:00
John Blum
8f58c1f27c Polish.
Pull request: #2525
2023-06-14 19:59:48 -07:00
daihuabin
1d293d85a3 Use BitSet instead of LinkedHashSet to improve the performance of SlotRange construction.
Pull request: #2525
2023-06-14 19:58:43 -07:00
John Blum
2b2e050004 Add requireState(..) assertion method to RedisAssertions.
Use RedisAssertions.requireState(..) in RedisAccessor.getRequiredConnectionFactory().

Closes #2611
2023-06-14 14:27:17 -07:00
John Blum
f3de2d51dc Allow users to customize the internal ObjectMapper created by GenericJackson2JsonRedisSerializer.
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
2023-06-14 13:41:19 -07:00
John Blum
f1492e1790 Refactor JdkSerializationRedisSerializer.
* Annotate deserialize(..) with @Override.
* Cleanup source code.
* Edit Javadoc.

Closes #2610
2023-06-14 12:55:32 -07:00