Commit Graph

2248 Commits

Author SHA1 Message Date
Mark Paluch
c7eef8fcff Introduce JedisInvoker.
We now use JedisInvoker to call Jedis and Pipeline methods for synchronous, pipelining, and transactional execution models. JedisInvoker captures the method invocation as functional utility and allows conversion of results:

Long result = invoker.just(BinaryJedis::geoadd, MultiKeyPipelineBase:geoadd, key, point.getX(), point.getY(), member);

Closes #1951
Original Pull Request: #1960
2021-02-10 09:58:59 +01:00
Mark Paluch
f723bd386c Upgrade to Commons Pool 2.9.0.
Closes #1954.
2021-01-27 10:24:20 +01:00
Mark Paluch
ef648ec97b Upgrade to Jedis 3.5.1.
Closes #1950.
2021-01-27 10:24:18 +01:00
Christoph Strobl
527d034926 Reduce visibility of LettuceInvoker internal API
...and introduce non Supplier based orElse(...) method for SingleInvocationSpec.

Original Pull Request #1948
2021-01-26 16:55:48 +01:00
Mark Paluch
6813256097 Clean up LettuceConverters.
Use lambdas where possible. Deprecate unused methods. Favor LettuceInvoker conversion methods over List to List/List to Set converters.

See #1797
Original Pull Request #1948
2021-01-26 16:55:16 +01:00
Mark Paluch
96fa2ecd70 Introduce LettuceInvoker.
We now use LettuceInvoker to call Lettuce API methods for synchronous, pipelining, and transactional execution models. LettuceInvoker captures the method invocation as functional utility and allows conversion of results:

Long result = invoker.just(RedisGeoAsyncCommands::geoadd, key, point.getX(), point.getY(), member);

List<byte[]> result = invoker.fromMany(RedisGeoAsyncCommands::geohash, key, members)
 				.toList(it -> it.getValueOrElse(null));

Closes #1797
Original Pull Request #1948
2021-01-26 16:54:33 +01:00
Christoph Strobl
c95d54732a Fix null return value of GEODIST command.
Relates to: #1797
2021-01-26 16:53:17 +01:00
Mark Paluch
ef8b7393ef Filter spring-issuemaster comments from feedback provided reassignment.
See #1779
2021-01-20 14:50:14 +01:00
Mark Paluch
6e20b60fed Filter spring-issuemaster comments from feedback provided reassignment.
See #1779
2021-01-14 11:05:42 +01:00
Christoph Strobl
8c90e48419 After release cleanups.
See #1831
2021-01-13 15:47:00 +01:00
Christoph Strobl
181616a08e Prepare next development iteration.
See #1831
2021-01-13 15:46:59 +01:00
Christoph Strobl
13205c16e7 Release version 2.5 M2 (2021.0.0).
See #1831
2021-01-13 15:34:04 +01:00
Christoph Strobl
029f0c9140 Prepare 2.5 M2 (2021.0.0).
See #1831
2021-01-13 15:33:34 +01:00
Christoph Strobl
0a89d05829 Updated changelog.
See #1831
2021-01-13 15:33:33 +01:00
Christoph Strobl
1830379b92 Updated changelog.
See #1832
2021-01-13 15:16:24 +01:00
Christoph Strobl
14dcd44f1d Update issue tracker references after GitHub issues migration.
See: #1779
2021-01-13 08:21:33 +01:00
Mark Paluch
48a62a00e6 Upgrade to Lettuce 6.0.2.RELEASE.
Closes #1940
2021-01-12 11:55:00 +01:00
Mark Paluch
501de9c1fa Update copyright year to 2021.
Closes #1942
2021-01-12 10:44:09 +01:00
Mark Paluch
941663186a Upgrade to xstream 1.4.15.
Closes #1939
2021-01-11 15:13:19 +01:00
Mark Paluch
023b10b195 #1779 - Add GitHub actions for issue workflow. 2020-12-31 10:38:08 +01:00
Greg L. Turnquist
b5b30a1eb7 DATAREDIS-1258 - Use Docker hub credentials for all CI jobs. 2020-12-15 10:31:09 -06:00
Greg L. Turnquist
995931cee2 DATAREDIS-1263 - Include proper import statements.
To ensure Kotlin builds work properly, certain types need explicit import statements.
2020-12-09 11:40:39 -06:00
Mark Paluch
c09cfb4434 DATAREDIS-1249 - Updated changelog. 2020-12-09 16:47:43 +01:00
Mark Paluch
1da425fe38 DATAREDIS-1242 - After release cleanups. 2020-12-09 15:32:21 +01:00
Mark Paluch
6253e54089 DATAREDIS-1242 - Prepare next development iteration. 2020-12-09 15:32:17 +01:00
Mark Paluch
6290bf51ba DATAREDIS-1242 - Release version 2.5 M1 (2021.0.0). 2020-12-09 15:21:57 +01:00
Mark Paluch
c01ba614cb DATAREDIS-1242 - Prepare 2.5 M1 (2021.0.0). 2020-12-09 15:21:30 +01:00
Mark Paluch
cc8404f67c DATAREDIS-1242 - Updated changelog. 2020-12-09 15:21:26 +01:00
Mark Paluch
60462f93e3 DATAREDIS-1240 - Updated changelog. 2020-12-09 12:42:29 +01:00
Mark Paluch
2df780f297 DATAREDIS-1239 - Updated changelog. 2020-12-09 09:59:14 +01:00
Pavel
0aec93df86 DATAREDIS-1257 - Update redis-repositories documentation.
Update reading converter sample since it converts `Map` to an `Address`, it shall have opposite declaration.

Original Pull Request: #575
2020-12-07 12:24:49 +01:00
Mark Paluch
a5700ba71a DATAREDIS-1230 - Revise error handling in StreamReceiver and StreamMessageListenerContainer.
Reading and deserialization in StreamReceiver and StreamMessageListener is now decoupled from each other to allow fine-grained control over errors and resumption.

Previously, we used the Template API to read and deserialize stream records. Now the actual read happens before the deserialization so that errors during deserialization of individual messages can be handled properly. This split also allows advancing in the stream read. Previously, the failed deserialization prevented of getting hold of the non-serialized Stream record which caused the stream receiver to remain at the offset that fetched the offending record which effectively lead to an infinite loop.

We also support a resume function in StreamReceiver to control whether stream reads should be resumed or terminated.

Original Pull Request: #576
2020-12-07 11:10:50 +01:00
Christoph Strobl
7d2bf8f852 DATAREDIS-891 - Update documentation.
Update since tags, add issue reference and fix new line issues in reference documentation.

Original Pull Request: #573
2020-12-07 10:12:52 +01:00
Mark Paluch
1912d0c999 DATAREDIS-891 - Revise RedisConnection transaction/closure resource binding.
We now correctly consider the transactional state along with the requested bindings scope when binding RedisConnection for reuse.

Previously, enabling transaction support on RedisTemplate registered the connection unconditionally with TransactionSynchronizationManager expecting a TransactionManager to close/unbind the connection upon transaction cleanup. This behavior could easily lead to lingering connections when a transactional RedisTemplate was used outside of a managed transaction.

We now distinguish between closure-scope binding and transaction binding.

Closure-scoped bindings (RedisTemplate.execute(SessionCallback)) do not interfere with transactional resources if there's no transactionally bound RedisConnection.

Closure-scope however reuses a transactionally bound connection.

Transaction-scoped binding binds only a connection to the transaction if there's an active transaction. Without an ongoing transaction, RedisTemplate does no longer bind connections to TransactionSynchronizationManager.

Original Pull Request: #573
2020-12-07 10:12:19 +01:00
Mark Paluch
dc44425925 DATAREDIS-1254 - Upgrade to Xstream 1.4.14. 2020-11-17 15:56:23 +01:00
Mark Paluch
bef975e616 DATAREDIS-1241 - Updated changelog. 2020-11-11 12:34:41 +01:00
Mark Paluch
79e9ad310e DATAREDIS-1248 - Use fresh JedisConnectionFactory in PubSubTests.
We make sure to use a dedicated JedisConnectionFactory for Pub/Sub tests as connections can easily break in previous tests which causes connection synchronization issues in the connection itself and in consequence, tests fail with an unrelated cause.
2020-11-11 10:25:08 +01:00
Mark Paluch
3823da8f18 DATAREDIS-1246 - Use Queue.offer(…) instead of Queue.add(…) to buffer Stream subscription overflow.
Using now the method implemented by SpscArrayQueue instead of the not implemented one.
2020-11-11 09:56:33 +01:00
Christoph Strobl
a4c2965d81 DATAREDIS-1245 - Use ClassUtils for assignable check in connection.ReturnType.
Original Pull Request: #571
2020-11-10 14:16:11 +01:00
Mark Paluch
cf5ce41ee0 DATAREDIS-1245 - Polishing.
Fix Javadoc and generics.

Original Pull Request: #571
2020-11-10 14:15:53 +01:00
Mark Paluch
366b5ffd25 DATAREDIS-1245 - Consider List subtypes used with RedisScript as MULTI return type.
We now consider List and subtypes of List to be returned as MULTI return type. Previously, List subtypes were considered to represent the value type.

Original Pull Request: #571
2020-11-10 12:03:51 +01:00
Greg L. Turnquist
7b927d61c2 DATAREDIS-1220 - Migrate back to non-root CI. 2020-11-09 12:02:54 -06:00
Greg L. Turnquist
b71367f051 DATAREDIS-1220 - Migrate to running CI test jobs as root.
To avoid permission issues with Redis, run the container as root. Apply proper measures so that maven caching doesn't break other users of the same agents.
2020-11-05 10:37:35 -06:00
Greg L. Turnquist
28949447b1 DATAREDIS-1220 - Manage JDK 15 container creation. 2020-11-03 15:31:01 -06:00
Greg L. Turnquist
7dc5a2033f DATAREDIS-1220 - Add support for JDK 15 testing. 2020-11-03 15:26:04 -06:00
Mark Paluch
95ee2ebb80 DATAREDIS-1232 - After release cleanups. 2020-10-28 16:10:25 +01:00
Mark Paluch
d6fd4460c5 DATAREDIS-1232 - Prepare next development iteration. 2020-10-28 16:10:22 +01:00
Mark Paluch
3425da10c5 DATAREDIS-1232 - Release version 2.4 GA (2020.0.0). 2020-10-28 15:46:57 +01:00
Mark Paluch
7a63106b8a DATAREDIS-1232 - Prepare 2.4 GA (2020.0.0). 2020-10-28 15:46:33 +01:00
Mark Paluch
df7ed8ab05 DATAREDIS-1232 - Updated changelog. 2020-10-28 15:46:25 +01:00