We now allow users to build custom CacheManagers based on RedisCacheManager more easily by making a broader API accessible to sub-classes.
In that sense we also allowing RedisCache to be used in custom implementations by making it public.
Original pull request: #120.
We now check for a NonTransientDataAccessException instead of just an UncategorizedDataAccessException to conver all relevant exception types.
Corrected typo in method name. Added infrastructure for driver specific DefaultScriptExecutorTests.
Removed usage of RelaxedJunit4ClassRuner and using MinimumRedisRule
instead.
Removed obsolete test context configuration for ScriptExecutorTests.
Original pull request: #115.
Conflicts:
src/test/java/org/springframework/data/redis/RedisTestProfileValueSource.java
We now allow to customise the JavaType to use for a given Class<> by using the getJavaType method. Added constructor variants to JacksonJsonRedisSerializer and Jackson2JsonRedisSerializer.
Original pull request: #113.
We now inspect the message of the exception thrown to determine whether the error resulted from a script not being present or an other error. In case the script is not present we simply invoke eval.
Original pull request: #108
It turned out that the version check throttled performance so we moved things around to avoid iterating multiple times and still perform the check in a non intrusive way.
Optimize initial size of HashSet and use a Set implementation to check for score duplicates.
Move jedis version check outside loop.
Original PR: #101
CLA: 90520140903040912 (Konstantin Shchepanovskyi)
Simplified tasks into single asciidoctor task. Wipe out expandPlaceholders to avoid needing the hack to in turn avoid the issue with file expansion.
Removed obsolete baseDir prefix from index.adoc.
Original pull request: #94.
We now depend on the Spring Data Build resources zip to refer to the centrally managed stylesheet. Fixed the Asciidoctor setup to copy the CSS from the shared resources into the target folder. Tweaked docsZip task to trigger docbook generation as well as PDF generation before zipping and corrected the includes directives to create the proper zip file structure.
Original pull request: #94.
Fixed Asciidoctor source files to avoid as many warnings as possible. Switched to matching AsciidoctorJ version. Fixed doctype definition by making it an option and not an attribute. Switched from backend to backends (as recommended for Asciidoctor 1.5).
Original pull request: #94.
Upgraded to Asciidoctor 1.5.0. We now cheat on Gradle docbook-reference-plugin by directly copying files to reference work dir to bypass expanding files. Create an empty source folder so that the plugin does not fail.
Original pull request: #94.
Add Asciidoctor plugin to Gradle. Reformat and extract some content of files that could not be parsed. Added already converted files.
Original pull request: #94.
Previously overriding message handler methods of the delegate passed to MessageListenerAdapter resulted in the message handler method called multiple times. We now make sure that a message handler method is only found and invoked once.
Original pull request: #95.
add support for commands:
SENTINEL FAILOVER master
SENTINEL SLAVES master
SENTINEL REMOVE name
SENTINEL MONITOR name ip port quorum
Original pull request: #92.
We’ve added RedisSentinelConfiguration holding required information for connecting to redis sentinels. This can be used to set up ConnectionFeactory for HA environments.
**Using Jedis**
Providing RedisSentinelConfiguration will force the JedisConnectionFactory to use JedisSentinelPool for managing resources.
**Using Lettuce/JRedis/SRP**
There’s currently no support for sentinel in those clients.
**CI Build**
We’ve added makefile to build and set up redis instances for testing sentinel support on travis-ci. There’s already a section for redis cluster.
The cluster section is for whatever reason currently not working as the cluster nodes won’t start.
This will be fixed when we add redis-cluster support.
_side note:_ there’s an alternative fork of lettuce at mp911de/lettuce that already has sentinel support.
* JedisConnection.eval() uses binary version of Jedis.eval()
* but JedisConnection.evalsha() uses string version of Jedis.evalsha()
* this commit changes JedisConnection.evalsha() to use binary version of Jedis.evalsha()
---
Original Pull Request: #91
CLA: 88220140729064528 (Jungtaek Lim)
We now consistently return null in implementations of RedisConnectionFactory#translateExceptionIfPossible(RuntimeException ex)
in cases where we cannot translate the given exception into a more meaningful one complying with the spec of PersistenceExceptionTranslator. Introduced the ExceptionTranslationStrategy abstraction which allows to customise the translation of exceptions through the implementations PassThroughExceptionTranslationStrategy which returns null iif the Exception could not be translated and FallbackExceptionTranslationStrategy which returns a RedisSystemException wrapping the original Exception if it couldn't be translated properly.
This fix also solves the issues DATAREDIS-295, DATAREDIS-325, DATAREDIS-326.
Original pull request: #90.