Commit Graph

2619 Commits

Author SHA1 Message Date
Mark Paluch
3576bbfa8c Return null elements for absent keys using reactive MGET.
We now use correctly null to indicate absent keys when using reactive MGET. Previously, we used an empty byte buffer that could be incorrectly translated to an empty string when using the string codec. An empty byte buffer can also be returned if the value length is zero leading to a state that doesn't allow distinguishing between absence and empty value.

Closes #2402
2022-09-13 15:11:41 +02:00
Mark Paluch
359d917a9e Adopt to changed Mockk artifact name.
Closes #2405
2022-09-12 11:25:51 +02:00
Christoph Strobl
fe940adeba Add missing hints for key bound operations
Closes: #2397
2022-09-09 10:53:48 +02:00
Christoph Strobl
55a27db3c4 Add serialization configuration for cache.support.NullValue
This commit makes sure to register serialization of null values for usage within a native image.

Closes: #2403
2022-09-09 10:21:10 +02:00
Mark Paluch
7d34afbcaa Call hstrlen on JedisCluster.
We now call hstrlen on the Cluster client instead of using our execute(…) fallback and determining the correct cluster node ourselves.

Closes #2392
2022-08-31 10:09:43 +02:00
Mark Paluch
eaef5dade7 Polishing.
Use correct Redis and Java versions.

See #2384
2022-08-17 11:05:06 +02:00
Mark Paluch
d9901de588 Remove new & noteworthy section in favor of our release notes.
Closes #2384
2022-08-17 11:04:48 +02:00
lanicc
62877250c0 Fix the JDK version documented to build the source code.
Closes #2377
Original pull request: #2378.
2022-08-02 09:32:52 +02:00
Mark Paluch
86bd38a638 Polishing.
Remove invalid test.

See #2355
2022-07-21 11:45:14 +02:00
Mark Paluch
cd1260ed5c Unsubscribe only once on Subscription.close().
We now unsubscribe from Redis only once when closing a Subscription object to avoid duplicate traffic and unexpected Redis responses.

Jedis does not have a mechanism to consume the additional unsubscribe response which leaves protocol frames on the InputStream leading to a corrupt state.

Closes #2355
2022-07-21 11:28:49 +02:00
Christoph Strobl
dce01ca16f After release cleanups.
See #2326
2022-07-15 15:30:55 +02:00
Christoph Strobl
a312ebe578 Prepare next development iteration.
See #2326
2022-07-15 15:30:47 +02:00
Christoph Strobl
3dea27ce41 Release version 3.0 M5 (2022.0.0).
See #2326
2022-07-15 15:18:31 +02:00
Christoph Strobl
6071a011f6 Prepare 3.0 M5 (2022.0.0).
See #2326
2022-07-15 15:17:57 +02:00
Christoph Strobl
abf40297dd Fix HashMapper issue flattening java.math types.
We now make sure to include types from the java.math namespace.

Closes: #2365
2022-07-15 08:59:18 +02:00
Christoph Strobl
7f368c48ed Resolve target type of wrapped one in custom StdTypeResolverBuilder.
This commit makes sure to avoid typing of primitive wrapper types wrapped inside what is considered a jackson ReferenceType (such as Optional, AtomicReference,...).

Original Pull Request: #2364
2022-07-15 08:53:57 +02:00
Mark Paluch
b43c98a1a5 Introduce custom StdTypeResolverBuilder to support primitive arrays without type hints.
Closes: #2361
Original Pull Request: #2364
2022-07-15 08:53:50 +02:00
Mark Paluch
c600d0e22d Polishing.
We now ensure proper exception handling in connection close methods to avoid resource leaks. Also, exceptions during connection close are no longer thrown to ensure proper resource cleanup behavior and API design.

See #2356
2022-07-14 16:04:37 +02:00
Mark Paluch
ed816393f2 JedisConnection.close() no longer throws exceptions.
We now ensure proper exception handling in close methods to avoid resource leaks. Also, exceptions during connection close are no longer thrown to ensure proper resource cleanup behavior and API design.

Closes #2356
2022-07-14 16:04:20 +02:00
Mark Paluch
714f0e5c66 Polishing
Adopt new naming scheme, replace fqcn with imported ones.

See #2350
2022-07-13 15:14:21 +02:00
Mark Paluch
738d37ba29 Allow configuration of RedisMessageListenerContainer through @EnableRedisRepositories.
We now support configuration of a bean reference to RedisMessageListenerContainer that should be used with `RedisKeyValueAdapter` for easier configuration of the listener container.

Closes #1827
2022-07-13 09:39:07 +02:00
Mark Paluch
e9bb9e0514 Upgrade to Lettuce 6.2.0.
Closes #2363
2022-07-12 15:02:44 +02:00
Christoph Strobl
38d2aa4bb8 Update native hints to cover proxies for key bound operations.
Also rename DataRedisRuntimeHints to RedisRuntimeHintsRegistrar.

See: #2350
2022-07-12 11:40:59 +02:00
Christoph Strobl
a55c73faeb Polishing.
Reduce constructor visibility and add tests with user provided ObjectMapper.

Original Pull Request: #2332
2022-07-12 07:45:33 +02:00
Mark Paluch
c013a63ba9 Refine Jackson2JsonRedisSerializer design.
Deprecate ObjectMapper setter. Introduce constructor accepting the ObjectMapper.

Original Pull Request: #2332
2022-07-12 07:45:33 +02:00
Christoph Strobl
6f4ac1125a Reader should provide target Object type to allow easy customization.
This commit makes sure to extract and pass on the target type, otherwise it would be Object.class all the time.

Original Pull Request: #2332
2022-07-12 07:43:05 +02:00
Mark Paluch
eb7dfbc7ef Introduce JacksonObjectReader and JacksonObjectWriter function interfaces to customize JSON (de)serialization.
We now encapsulate serialization and deserialization operations as JacksonObjectWriter and JacksonObjectReader functions to allow customization of Jackson serialization.

Closes: #2322
Original Pull Request: #2332
2022-07-12 07:42:29 +02:00
Mark Paluch
862decfdbe Upgrade to Jedis 4.2.3.
Closes #2357
2022-07-07 09:51:32 +02:00
Christoph Strobl
47c1ff54dd Add AOT support for redis repositories.
We now use the AOT infrastructure of Spring Framework 6 and data commons to provide AOT support building the foundation for native image compilation.
Additionally we register hints for GraalVM native image.

See: #2350
2022-07-06 14:44:46 +02:00
Mark Paluch
8c4052329f Adopt to Reactor 2022.0.0-M4 changes.
Closes #2354
2022-07-04 15:06:32 +02:00
Mark Paluch
105964394e Fix Cluster sort.
Jedis Cluster sort now considers if the destination key is sharing the same slot as the source key to use same-slot sorting.

Additionally, sort results that do not map to the same slot replace the destination key with a list instead of checking the key type and appending results.

Closes #2341
2022-06-28 11:08:03 +02:00
Shyngys Sapraliyev
363e46fd1c Fix DefaultSerializationContext assertion message.
Closes #2336
2022-06-28 09:35:07 +02:00
Mark Paluch
f353a09d0f Consider type hints of the actual value in MappingRedisConverter.
We now consider the actual value type when determining whether a value should be considered an entity. Previously, we relied on PersistentProperty type information only which made it impossible to use generic-typed (or Object) properties for entities.

Closes #2349
2022-06-23 11:42:17 +02:00
John Blum
c0821be37f Remove punctuation from Exception messages.
Closes #2340.
2022-06-08 14:10:07 -07:00
Mark Paluch
73fff10237 Update CI properties.
See #2326
2022-06-03 09:34:20 +02:00
Mark Paluch
bdbe06ff36 Upgrade to Maven Wrapper 3.8.5.
See #2337
2022-06-03 09:32:40 +02:00
Mark Paluch
e4f5c433e2 Correctly release connection after switching to Pub/Sub mode.
LettuceConnection.switchToPubSub now correctly releases its underlying connection when switching to Pub/Sub. Also, we improved safeguards to avoid using closed connections.

Closes #2331
2022-06-03 09:15:00 +02:00
Mark Paluch
08ed1c472b Capture subscriber initialization exceptions in init future.
We now capture exceptions during the connection initialization and subscription to avoid getting the container into an invalid state.

Closes #2335
2022-06-02 09:02:55 +02:00
Mark Paluch
e2e68aa572 Fix resource disposal ordering in LettuceConnectionFactory.
We now close the cluster command executor before cleaning up the connection pools so that we first release all held connections before pruning the connection pools.
Previously, the pools were pruned first leading to an attempt to return the connection held by the cluster command executor causing a PoolException.

Closes #2330
2022-05-24 15:18:26 +02:00
Mark Paluch
14750691d3 Polishing.
Tweak Javadoc links.

Original Pull Request: #2292
2022-05-23 11:57:49 +02:00
Christoph Strobl
2a4cf7a644 Reintroduce and deprecate methods using ZSetCommand.Range.
Provide a smoother upgrade experience.
Fix some javadoc along the way.

See: #2288
Original Pull Request: #2292
2022-05-23 11:57:00 +02:00
Mark Paluch
21c147d2aa Update documentation.
Original Pull Request: #2292
2022-05-23 11:56:32 +02:00
Mark Paluch
b17bc4a7fd Polishing.
Remove duplicate conversion code.

Original Pull Request: #2292
2022-05-23 11:56:05 +02:00
Mark Paluch
4ab1789953 Use o.s.d.d.Range instead of inner Range class for ZSet operations.
Closes: #2288
Original Pull Request: #2292
2022-05-23 11:55:37 +02:00
M Sazzadul Hoque
6ca3800d8c Update Jedis version in reference documentation.
Closes: #2328
2022-05-19 13:16:16 +02:00
Christoph Strobl
5d0deb1d40 Remove unused imports and update reference documentation.
Original Pull Request: #2287
2022-05-18 13:37:26 +02:00
Mark Paluch
fc8ba1aa84 Polishing.
Consistently use InvalidDataAccessApiUsageException to signal that an operation is not allowed/supported in the current mode of operation.
Replace converter objects with conversion within the actual method to remove indirections.

Original Pull Request: #2287
2022-05-18 13:37:01 +02:00
Mark Paluch
ca49139572 Update docs.
Also, refine docs regarding driver ordering.

Original Pull Request: #2287
2022-05-18 13:36:35 +02:00
Mark Paluch
f232a5b3fe Polishing.
Reformat code. Reduce visibility, simplify code.

Original Pull Request: #2287
2022-05-18 13:35:38 +02:00
Mark Paluch
1e4cd6f341 Upgrade to Jedis 4.2.
The upgrade also allows to enable support for GEOSEARCH, GEOSEARCHSTORE, XCLAIMJUSTID and XPENDING.

Closes: #2212
Original Pull Request: #2287
2022-05-18 13:35:01 +02:00