Commit Graph

657 Commits

Author SHA1 Message Date
Mark Paluch
0a8d431570 DATAREDIS-1118 - Allow configuration of RedisCacheWriter on existing RedisCacheManagerBuilder.
We now allow configuration of the RedisCacheWriter on existing RedisCacheManagerBuilder objects.

Original Pull Request: #522
2020-04-07 10:28:16 +02:00
Mark Paluch
87d3bb5660 DATAREDIS-1084 - Polishing.
Rename PendingMessage.getStringId to PendingMessage.getIdAsString for consistent naming scheme. Remove getElapsedTimeSinceLastDeliveryMS method for now in favor of getElapsedTimeSinceLastDelivery.

Use primitive long instead of boxed wrapper to avoid nullability where possible. Move PendingMessage* converters to StreamConverters.

Add assertions.

Original pull request: #512.
2020-03-10 09:41:10 +01:00
Christoph Strobl
52fd648157 DATAREDIS-1084 - Add support for XCLAIM.
Original pull request: #512.
2020-03-10 09:41:07 +01:00
Christoph Strobl
ca01670c36 DATAREDIS-1084 - Add support for XPENDING.
Original pull request: #512.
2020-03-10 09:40:55 +01:00
Christoph Strobl
9b0d405fdf DATAREDIS-1011 - Polishing.
Fix copyright headers and update documentation.

Original Pull Request: #511
2020-03-09 11:03:57 +01:00
Mark Paluch
42ad8d190d DATAREDIS-1011 - Allow configuration of Lettuce pipelining flush behavior.
We now allow customization of flushing when using pipelining with Lettuce. Lettuce flushes each command by default. To optimize for performance, flushing behavior can be customized using a PipeliningFlushPolicy. Flush each command, flush on close and flush after n commands are the bundled implementations that can be configured on LettuceConnectionFactory.

Original Pull Request: #511
2020-03-09 11:03:31 +01:00
Mark Paluch
aa4d12433b DATAREDIS-1104 - Suppress connection close failures when unbinding a connection.
We now no longer propagate exceptions that happen during connection disposal but instead we log them on DEBUG level to avoid exception masking.
2020-02-25 13:53:46 +01:00
Mark Paluch
34ceee0675 DATAREDIS-1093 - Polishing.
Associate test ClientResources with LettuceConnectionFactory where it was missing to reuse ClientResources as much as possible.
2020-02-13 11:56:18 +01:00
Mark Paluch
0f609ad7f4 DATAREDIS-1093 - Document that Master/Replica connections do not support Pub/Sub. 2020-02-13 11:55:44 +01:00
Mark Paluch
871c6713dd DATAREDIS-1096 - Move off deprecated Lettuce API.
Original Pull Request: #510
2020-02-12 07:52:56 +01:00
Mark Paluch
9ddc60f3e1 DATAREDIS-1095 - Polishing.
Use .as(StepVerifier::create) syntax in tests.

Original Pull Request: #509
2020-02-11 14:47:09 +01:00
Mark Paluch
87bbee4310 DATAREDIS-1095 - Use Flux.usingWhen(…) in DefaultReactiveScriptExecutor.execute(…).
We now consistently use Flux.usingWhen(…) to obtain and release Redis connections without blocking the calling thread.

Original Pull Request: #509
2020-02-11 14:46:02 +01:00
Mark Paluch
e62ecbb1a9 DATAREDIS-538 - Allow @TimeToLive methods that are not accessible by default.
We allow now the use of non-public classes with a @TimeToLive method and @TimeToLive on non-public methods.

Original Pull Request: #231
2020-02-03 14:25:55 +01:00
Mark Paluch
54229d2388 DATAREDIS-1079 - Polishing.
Deprecate old isAutoAck/autoAck methods in favor of isAutoAcknowledge/autoAcknowledge methods with improved names.

Original pull request: #508.
2020-01-31 16:26:11 +01:00
Christoph Strobl
fccaeb23e9 DATAREDIS-1079 - Fix StreamMessageListenerContainer autoAck on receive.
Original pull request: #508.
2020-01-31 16:25:37 +01:00
Christoph Strobl
75fcb0ec3d DATAREDIS-611 - Update Javadoc and remove superfluous negativity limitations.
Original Pull Request: #501
2020-01-27 12:40:13 +01:00
Mark Paluch
31d4730222 DATAREDIS-611 - Add overloads accepting Duration and Instant.
We revised our imperative Template API by accepting Duration and Instant types in addition to methods accepting timeout/TimeUnit respective Date.

Original Pull Request: #501
2020-01-27 12:39:49 +01:00
Greg Turnquist
a3d2ad7ed6 DATAREDIS-1063 - Build against JDK 11+. 2020-01-15 15:42:00 +01:00
Christoph Strobl
94699ce79c DATAREDIS-1041 - Introduce RedisCache configuration option prefixCacheNameWith.
prefixCacheNameWith allows to prefix the cache name. The default CacheKeyPrefix.simple() format is still in place.

Original pull request: #507.
2020-01-13 15:19:08 +01:00
Mark Paluch
f823062ef0 DATAREDIS-367 - Polishing.
Add author tag and Override annotation. Update test to use try-with-resources.

Original pull request: #506.
2020-01-10 11:29:40 +01:00
Mark Paluch
289fa1acb9 DATAREDIS-1083 - Update copyright years to 2020. 2020-01-07 09:01:10 +01:00
Mark Paluch
bcc91f6b43 DATAREDIS-1062 - Polishing.
We now select the database on dedicated connection acquisition only if the current database is different from the default database. Database connections are expected to use the default database index when they are acquired so the database index may be changed for the duration when a connection is in use.
We also reset dedicated connections to use the default database index on connection cleanup to bring the connection back into its initial state.

Add author tag and tests.

Original pull request: #496.
2019-11-22 13:03:09 +01:00
Mark Paluch
c6802ba247 DATAREDIS-1060 - Polishing.
Remove data node password reuse for sentinel as we favor explicit configuration over implicit.
Use RedisURI builder and not sentinel URI builder to configure the SentinelURI correctly.
Associate masterId with outermost RedisURI.

Original pull request: #495.
2019-11-12 15:37:14 +01:00
Christoph Strobl
1955074eb7 DATAREDIS-1060 - Redis password should not automatically be applied to Sentinel.
We now expose two separate properties in RedisSentinelConfiguration to configure the data password individually from the sentinel password.

Original pull request: #495.
2019-11-12 15:36:35 +01:00
Mark Paluch
049f4d78ab DATAREDIS-1045 - Apply password to all Sentinel endpoints.
We now apply the password to all Sentinel endpoints described through RedisURI.

We also apply all remaining settings to all Sentinel endpoints to ensure configuration propagation.

Original Pull Request: #490
2019-10-30 13:58:46 +01:00
Christoph Strobl
3dfe7af60e DATAREDIS-1049 - Fix retrieval of empty keyspaceNotificationsConfigParameter used to keep server defaults.
Empty Strings changed to be considered null throwing an exception on getRequiredAttribute so we now set the value explicitly for this attribute when considered empty.

Original pull request: #491.
2019-10-30 13:35:46 +01:00
Christoph Strobl
9d62ead0e4 DATAREDIS-1053 - Polishing.
Use early return and fix issue reference in tests.

Original Pull Request: #488
2019-10-29 10:22:42 +01:00
Mark Paluch
6851186cf2 DATAREDIS-1053 - Subscribe to cleanup publishers when canceling a listenTo() stream.
Cleanup publishers are now subscribed to instead of setting the subscribeOn Scheduler to ensure connections get closed after canceling the stream.

Original Pull Request: #488
2019-10-29 10:22:17 +01:00
Mark Paluch
18fdfd9cf9 DATAREDIS-575 - Polishing.
Convert tests to AssertJ. Fix typo in test method name.

Original pull request: #464.
2019-09-25 11:05:08 +02:00
Mark Paluch
3ee2e393e0 DATAREDIS-575 - Add tests for client name with JedisCluster.
Original pull request: #464.
2019-09-25 11:04:52 +02:00
Mark Paluch
1e3921826e DATAREDIS-1032 - Polishing.
Add early return in cache key is a String. Convert convertCollectionLikeOrMapKey to non-nullable method by throwing an exception on a non-collection-like and Map-like type.

Original pull request: #475.
2019-09-04 14:59:00 +02:00
Christoph Strobl
e4630f951d DATAREDIS-1032 - Improve cache key converter registration.
Original pull request: #475.
2019-09-04 14:58:57 +02:00
Christoph Strobl
3a77f6a147 DATAREDIS-1032 - Fix CacheKey conversions for List, Map and Arrays.
Original pull request: #475.
2019-09-04 14:58:51 +02:00
Mark Paluch
1ae1acf98f DATAREDIS-1031 - Fix reactive pExpire/pExpireAt to invoke correct command.
We now invoke the correct PEXPIRE(AT) command. Previously, we invoked EXPIRE/EXPIREAT commands resulting in the wrong command being called.

Original Pull Request: #474
2019-09-04 13:45:18 +02:00
Mark Paluch
85669e6e69 DATAREDIS-1030 - Refine RedisScript creation.
Allow RedisScript.of(…) creation from a Resource.

Original Pull Request: #473
2019-09-04 13:43:48 +02:00
Mark Paluch
ac4909f139 DATAREDIS-974 - Polishing.
Consistently use getClientName() instead of qualified configuration accessor. Add missing Nullable annotation to getPassword() method. Reformat.

Original pull request: #472.
2019-09-02 14:59:45 +02:00
Christoph Strobl
849091d6cf DATAREDIS-974 - Apply SSL configuration when creating Jedis Cluster.
Original pull request: #472.
2019-09-02 14:59:40 +02:00
Mark Paluch
3fad6e5adc DATAREDIS-1027 - Dispose reactive LettuceConnectionProvider on connection factory shutdown.
LettuceConnectionFactory.destroy() now disposes also the reactive LettuceConnectionProvider to free resources of a connection pool.

Original Pull Request: #470
2019-08-16 11:17:36 +02:00
Christoph Strobl
a87e78cc5d DATAREDIS-1000 - Polishing.
Deprecate raw() and introduce dedicated methods for byteArray and byteBuffer.

Original Pull Request: #459
2019-07-30 14:37:30 +02:00
Mark Paluch
1491b93078 DATAREDIS-1000 - Fix raw/byte array serialization via RedisSerializationContext.
We now use the correct generic parameters for raw serialization via RedisSerializationContext returning ByteBuffer.

Introduce RedisSerializer.raw() and cleanups.

Original Pull Request: #459
2019-07-30 14:37:30 +02:00
Mark Paluch
7f9aca031a DATAREDIS-588 - Use JedisCluster.psetex(…) instead dispatching to a node.
We now use JedisCluster's psetex command instead of looking up the topology and dispatching the command ourselves.

Original Pull Request: #463
2019-07-30 07:51:44 +02:00
Mark Paluch
15fd1d38de DATAREDIS-588 - Polishing.
Simplify SET command usage with Jedis using various expiry and presence/absence flags to use consistently SetParams.

Original Pull Request: #463
2019-07-30 07:50:40 +02:00
Mark Paluch
9118af48a5 DATAREDIS-1013 - Polishing.
Remove flakey tests.
2019-07-26 14:55:37 +02:00
Mark Paluch
2de4141514 DATAREDIS-1013 - Polishing.
Add test. Consider grammar depending on argument count.

Original pull request: #468.
2019-07-26 14:49:07 +02:00
Mark Paluch
485ee1d5a2 DATAREDIS-549 - Polishing.
Replace some AtTest(expected = …) and ExpectedException with the corresponding AssertJ assertThatExceptionOfType(…) and assertThatIllegalArgumentException().isThrownBy(…).
2019-07-10 17:57:38 +02:00
Mark Paluch
0205c9c98b DATAREDIS-549 - Migrate to AssertJ. 2019-07-10 17:57:38 +02:00
Mark Paluch
e506691f70 DATAREDIS-1001 - Polishing.
Use untyped serializers/serializers for Calendar and Date. Serialize JSR-310 types to String.

Original pull request: #467.
2019-07-09 16:44:57 +02:00
Christoph Strobl
a2831bef84 DATAREDIS-1001 - Fix java.util.Date hash mapping when flattening out entries.
The AsArrayTypeDeserializer causes date values to be rendered as an array like [java.util.Date, 1561543964015] an therefore is 1. skipped when flattening and 2. if not skipped cannot be read back.
We now register an error handler along with a custom deserializer aware of the used date format to write and read date values without having to store an array but just the date msec.

Original pull request: #467.
2019-07-09 16:33:33 +02:00
Christoph Strobl
1bdf875d45 DATAREDIS-976 - Polishing.
Add missing nullable annotations.

Original pull request: #457
2019-07-03 11:49:16 +02:00
Mark Paluch
05798fb637 DATAREDIS-976 - Allow extension of Lettuce Connection and Subscription classes.
LettuceConnection, LettuceClusterConnection, and LettuceSubscription can now be properly subclassed so they can be extended and created by LettuceConnectionFactory.

LettuceConnectionFactory provides template methods doCreateLettuceConnection and doCreateLettuceClusterConnection.

Original pull request: #450 & #457
2019-07-03 11:11:49 +02:00