Commit Graph

1394 Commits

Author SHA1 Message Date
Mark Paluch
c93ddaba77 Polishing.
Allow Jedis to exist pub/sub loop gracefully. Await unsubscribe. Reduce retry backoff to allow from broken connection recovery. Do not use pooling to avoid using broken connections.

See #2256
2022-02-17 16:24:39 +01:00
Christoph Strobl
9e28039399 Update copyright year to 2022.
See: #2264
2022-02-17 11:22:47 +01:00
Christoph Strobl
c9f8d17b13 MessageListenerContainer must not be initialized twice.
Error when afterPropertiesSet is called more than once. Update documentation and error messages.
Original Pull Request: #2256
2022-02-17 11:16:12 +01:00
Mark Paluch
a87540e5cc Use proper subscribe methods and fix nullability assumptions.
See: #964
Original Pull Request: #2256
2022-02-17 11:14:35 +01:00
Mark Paluch
431dfc2a56 Revise implementation of RedisMessageListenerContainer.
RedisMessageListenerContainer is now reimplemented using non-blocking synchronization guards and a state management to simplify its maintenances. Additionally, listener registration and subscription setup through the start() method awaits until the listener subscription is confirmed by the Redis server. The synchronization removes potential race conditions that could happen by concurrent access to blocking Redis connectors in which the registration state was guessed and not awaited.

Resolves: #964
Original Pull Request: #2256
2022-02-17 11:14:11 +01:00
Oliver Drotbohm
1c3a241178 Adapt to changes in entity creation metadata APIs in Spring Data Commons. 2022-02-15 16:36:52 +01:00
Mark Paluch
ed9277236c Polishing.
Add author tags and update license years.

See #2222
2022-02-15 14:23:57 +01:00
Hendrik Duerkop
b9d6dd84dc Removed deprecated SpinBarrier.
Closes #2222
2022-02-15 13:51:09 +01:00
Christoph Strobl
2a6755f360 Lookup jackson config to figure out what to do with certain types (eg. java.time)
Related: #1566
Original Pull Request: #2253
2022-02-08 10:17:52 +01:00
Mark Paluch
2fc29d96ce Move inner test classes to top-level classes to run these by the Maven build.
Original Pull Request: #2253
2022-02-08 10:17:19 +01:00
Mark Paluch
73b49862df Retain target type hint when deserializing Stream records.
We now retain the target type when obtaining a HashMapper through StreamObjectMapper. To achieve this, we introduced the HashObjectReader interface accepting a target type.

Resolves: #2198
Related: #1566
Original Pull Request: #2253
2022-02-08 10:16:52 +01:00
Christoph Strobl
1100bdd2ee Prepare 2.7 M2 (2021.2.0).
See #2241
2022-01-18 09:09:01 +01:00
Christoph Strobl
36c66ed56f Prepare 2.7 M1 (2021.2.0).
See #2203
2022-01-14 10:57:51 +01:00
Christoph Strobl
93c25b0608 Switch Jackson default mapping default from NON_FINAL to EVERYTHING.
Closes #1566
Original pull request: #2237.
2022-01-13 14:48:50 +01:00
Mark Paluch
e53a5762b1 Polishing.
Add unit tests.

See #2234
2022-01-13 14:43:21 +01:00
sokomishalov
c363c4acb4 Add RedisScript and PartialUpdate extensions.
Closes #2234
2022-01-13 14:43:11 +01:00
Mark Paluch
d0f17b167e Polishing.
Reformat code. Consider sentinel username in JedisConnectionFactory. Update years in license headers.

See #2218
Original pull request: #2224.
2022-01-07 11:05:19 +01:00
Vikas Garg
f333b184a5 Support sentinel username in SentinelConfiguration.
Closes #2218
Original pull request: #2224.
2022-01-07 11:05:04 +01:00
Mark Paluch
be1663c95e Adopt to Mockito changes.
Closes #2221
2022-01-04 15:02:06 +01:00
Mark Paluch
45fdc5d0ab Polishing.
Consider configured PolymorphicTypeValidator.

See #2211
2022-01-03 10:49:32 +01:00
Guirong Hu
9af0f5f996 Move off deprecated ObjectMapper methods.
Closes #2211
2022-01-03 10:49:11 +01:00
Mark Paluch
3ca2191445 Respect ByteBuffer position and limits in ByteUtils.getBytes(ByteBuffer).
We now properly extract the byte array from a ByteBuffer by copying its content respecting the read position and limits.

Closes #2204
Original Pull Request: #2213
2021-12-15 09:52:49 +01:00
Mark Paluch
9a56c38e2c Return single-element list with empty value when ReactiveHashOperations.hMGet(…) for a single key returns no value.
We now return a list containing a single empty KeyValue element when ReactiveHashOperations.hMGet(…) called for a single key returns no value.

Previously, the code used onErrorReturn(…) which returned the wrong value and suppressed errors.

Closes #2210
2021-12-10 10:03:02 +01:00
Jens Schauder
54ad44fc35 Prepare 2.6 GA (2021.1.0).
See #2184
2021-11-12 10:49:16 +01:00
Mark Paluch
518fd6d946 Avoid cast to StatefulRedisConnection upon eager LettuceConnectionFactory initialization.
We now no longer try to cast the Lettuce connection to StatefulRedisConnection when eagerly initializing the shared connection. Instead, we now introduced another method to obtain the cluster connection.

Closes #2186
2021-11-12 08:52:28 +01:00
Mark Paluch
b2f7b6f4b2 Polishing.
Rename key name arguments consistently to oldKey/newKey.

See #2189
2021-11-08 15:23:55 +01:00
Todd Merrill
b67f1339b2 Use consistent key names in RENAME/RENAMENX command documentation.
Closes #2189
2021-11-08 15:23:27 +01:00
Mark Paluch
c869b87192 Prepare 2.6 RC1 (2021.1.0).
See #2171
2021-10-18 13:47:48 +02:00
Mark Paluch
7eeb0a4a8e Polishing.
Reformat documentation.

See #2181
2021-10-13 14:30:59 +02:00
Mark Paluch
6f3be02f3a Polishing.
Tweak wording.

See #2181
2021-10-13 14:30:53 +02:00
Dennis
430cef40ea Added docs to use TTL on AWS ElastiCache.
The documentation indicates that it's not possible to use the keyspace notification message listener on AWS ElastiCache. The added text describes a way to prevent Spring Data Redis from using the `CONFIG` command and make it possible to use the listener on AWS.

Closes #2181
2021-10-13 14:30:53 +02:00
Forever杨
954029d64a Fix command reference in Javadoc.
Closes #2176
2021-10-13 14:25:01 +02:00
Mark Paluch
5852cc23f9 Add support for fluent findBy(…) query by example support.
Including projection and stream query support.

Closes #2150
Original pull request: #2151.
2021-10-08 13:58:30 +02:00
Mark Paluch
54feba95a9 Fix invalid Javadoc references.
See #2175
2021-09-27 10:02:15 +02:00
Mark Paluch
f88f820568 Prepare 2.6 M3 (2021.1.0).
See #2143
2021-09-17 09:44:35 +02:00
Christoph Strobl
7d94bfc30e Polishing.
Reintroduce public compile-time constants but flag them deprecated with replacement hint.

Original Pull Request: #2158
2021-09-16 11:04:34 +02:00
Stefan Berger
2f202fde5f Fix typo in DELIMITTER
Closes: #2158
2021-09-16 10:52:42 +02:00
Mark Paluch
f5420d0477 Run top-level collection conversion tests only on Java 8.
Closes #2143
Related ticket: #2168
2021-09-16 09:47:33 +02:00
Mark Paluch
c392f030d8 Guard tests against changing subscription order.
See #2143
2021-09-16 08:46:26 +02:00
Mark Paluch
174680b9e7 Guard RedisClusterConfiguration.asMap and RedisSentinelConfiguration.asMap with Assert.noNullElements(…).
Closes #2167
2021-09-15 12:09:48 +02:00
Mark Paluch
125342f19a Polishing.
Revert changes in JedisClusterKeyCommands. Switch clusterGetNodeForKey method to calculate the slot locally.

See #2156
Original pull request: #2159.
2021-09-14 09:35:36 +02:00
Dan Smith
5d617ed11b Hash keys using Jedis locally rather than call cluster keyslot.
Changing the remaining commands in JedisClusterKeyCommands to use the
topology's getKeyServingMasterNode to find the node of key, rather than calling
connection.clusterGetNodeForKey. clusterGetNodeForKey was making a cluster
keyslot call to the server to hash the key, rather than hashing it locally.

Closes: #2156
Original pull request: #2159.
2021-09-14 09:35:15 +02:00
Mark Paluch
7735a039fe Polishing.
Add author and since tags. Wrap connection allocation with fromSupplier(…). Move connection proxy decoration into doInConnection(…) as connection decoration isn't directly related to connection creation.

See #2145
Original pull request: #2162.
2021-09-13 15:09:35 +02:00
Petromir Dzhunev
aaf7818427 Extract connection creation into ReactiveRedisTemplate.getConnection() method.
A new method, called getConnection, is introduced to allow overriding of connection creation.

Closes #2145
Original pull request: #2162.
2021-09-13 15:09:33 +02:00
Christoph Strobl
cb20f8a652 Update license header and javadoc.
Original Pull Request: #2129
2021-09-13 09:26:35 +02:00
Mark Paluch
fcf92a26e6 Polishing.
Remove exposeConnection from AbstractOperations.execute(…) as it's always set to true simplifying calling code.

Original Pull Request: #2129
2021-09-13 09:17:36 +02:00
Mark Paluch
5918f91128 Introduce doCreate… methods without connection proxying.
doCreateMono and doCreateFlux now no longer proxy the connection for commands invoked directly from the ReactiveRedisTemplate implementations as proxying isn't necessary for simple command invocation.

Original Pull Request: #2129
2021-09-13 09:17:13 +02:00
Mark Paluch
24b0f6116b Introduce ReactiveRedisOperations.executeInSession(…) and session callback interface.
Allows reuse of a bound connection without additional connection acquisition overhead.

Closes: #2110
Original Pull Request: #2129
2021-09-13 09:16:44 +02:00
Mark Paluch
a944aa2d1b Upgrade to Jedis 3.7.
Enable support for SCAN with type, call appropriate shutdown methods with save/nosave flags.

Closes: #2153
Original Pull Request: #2154
2021-09-03 11:23:00 +02:00
Mark Paluch
99053cfeac Polishing.
Fix build on Java 16.

See #2071
2021-09-02 11:55:23 +02:00