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.
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
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
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.
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.
We now expose two separate properties in RedisSentinelConfiguration to configure the data password individually from the sentinel password.
Original pull request: #495.
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
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.
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
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.
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
Consistently use getClientName() instead of qualified configuration accessor. Add missing Nullable annotation to getPassword() method. Reformat.
Original pull request: #472.
LettuceConnectionFactory.destroy() now disposes also the reactive LettuceConnectionProvider to free resources of a connection pool.
Original Pull Request: #470
We now use the correct generic parameters for raw serialization via RedisSerializationContext returning ByteBuffer.
Introduce RedisSerializer.raw() and cleanups.
Original Pull Request: #459
Replace some AtTest(expected = …) and ExpectedException with the corresponding AssertJ assertThatExceptionOfType(…) and assertThatIllegalArgumentException().isThrownBy(…).
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.
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