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.
We now serialise the key and value before trying to acquire the lock to make sure that the given key and value are written in state they were at method invocation time.
Original pull request: #85.
We now validate the given RedisTemplate in the constructor of RedisAtomicLong/RedisAtomicInteger/RedisAtomicDouble to report an inappropriate RedisTemplate more eagerly.
Original pull request: #83.
Add scan to RedisMap / RedisSet / RedisZSet.
Lua scritps have to be assembled in binary way in order to avoid script errors when executing.
Add missing rules/profiles to run properly in a 2.6.x redis environment.
Original pull request: #82.
Unify naming and return types.
Update supported commands documentation.
Remove key from BoundHashOperations and use getKey() instead.
Prevent error when trying to read values when there are no values present.
Unify naming and return types. Update supported commands documentation. Remove key from BoundHashOperations and use getKey() instead.
Original pull request: #81.
ZSCAN is directly supported by jedis and can be emulated for lettuce via eval.
SRP and JRedis will throw UnsupportedOperationException.
Original pull request: #80.
HSCAN is directly supported by jedis and can be emulated for lettuce via eval.
SRP and JRedis will throw UnsupportedOperationException.
We have modified the ScanCursor implementation to take Collection instead of List.
Currently naming for scan commands is not consistent for scan, sscan and hscan. There’s a clean up task for those commands when done with all scan related commands.
Original pull request: #78.
Upgrading to latest jedis version 2.5.1. Added new conversion for Long to byte[] in JedisConverters to be able to convert long cursorIds to byte[].
Original pull request: #77.
We’ve added a customized SpringJUnit4Runner and TestRule that allow us to use a more relaxed strategy when dealing with @IfProfileValue. Basically we have added ‘+’ as sort of wildcard indicating tests should be executed for version X and all its successor.
This allows us to run test valid starting 2.6 for 2.8 as well, while those only valid for 2.8 are not executed against eg. redis 2.6.17.
Fixed compile error in ScanCursor with Java 6.
Orignal pull request: #76.
SSCAN command is natively supported by jedis and can be emulated for lettuce.
JRedis and SRP will throw UnsupportedOperationException.
sScan is available on RedisConneciton and RedisSetOperations returning basically a Cursor that allows iteration over the defined values for a given key.
Currently the jedis driver does not directly expose the binary version of sscan which leads to invalid results when using a non String compatible converter along with the RedisTemplate. We’ll change this as soon as a newer version of jedis is available.
Along the way loading behavior of ScanCursor has been fixed, preventing it from indicating next values available when there effectively are no more.
Orignal pull request: #76.
SCAN is currently only supported by jedis but can be emulated for
lettuce via eval.
Srp and JRedis will respond with UnsupportedOperationException.
We provide a Cursor implementation allowing to scroll through the
responses provided by the underlying connection. The cursor will fetch
additional results from redis server whenever its starting point has not
been reached and there are no more already loaded items available.
Only values returned by the last call to redis server are kept in memory
which allows scrolling through the entire collection without potentially
running into memory issues.
Original pull request: #71.
The introduced generic types prevent the DecoratingStringHashMapper from being useful as it can now only be created for mappers of the generic type which was not the original intention.
This breaks the retwis-j sample as well as it seems other implementations see: b0c0d23.
Original pull request: #73.
Upgrade to JUnit 4.11
Upgrade to JUnit 4.11 and remove use of a matcher in an internal
package in favour of the Hamcrest equivalent. To avoid a clash between
JUnit 4.11's Hamcrest dependency and the version of Hamcrest that's
bundled in mockito-all, use of mockito-all has been replaced with
mockito-core
Add the Spring IO plugin
Configure the Spring IO plugin such that it's only applied when the
build is run with -PplatformVersion=<version>. This platformVersion
property is used to determine the version of the Platform that will
be used when running the springIoCheck task. The plugin can be used
by running a build as follows:
./gradlew clean springIoCheck -PplatformVersion=1.0.0.BUILD-SNAPSHOT -PJDK7_HOME=… -PJDK8_HOME=…
This will test the project on JDK7 and JDK 8 using the dependencies
defined in the latest snapshot of Spring IO Platform 1.0.0.
Address Java 6 compilation problem
The JUnit and Hamcrest upgrades caused a compilation error on Java 6
due to a bug in the compiler’s handling of generics. This commit adds
more type information to help to guide the compiler around the problem.
Additionally, deprecation warnings caused by the JUnit and Hamcrest
upgrades have also been addressed.
Original pull request: #72.
Redis connections have been left open when calling RedisTemplate.execute as the connection might have been bound to a thread, released but never been unbound. We now only bind and unbind connections in case of enabled transaction support, while just getting and releasing it for all other purposes.
Original pull request: #69.