DATAREDIS-201
Inject LettucePool into LettuceConnectionFactory
to be used for a "dedicatedConnection". Dedicated
connections are used only for blocking and tx ops
when a shared connection is used. If shareNativeConnection
is set to false, the dedicated conn will be
used for all ops.
DATAREDIS-186
- Handle a few method signature changes to varargs
- Handle possibility of exec() throwing Exceptions
if ErrorReply received in Redis 2.6
- Add DefaultJredisPool to pool JRedis connections
- Prevent returning the same resource to the pool
multiple times on JredisConnection close
- Fixes DATAREDIS-154 previous JRedis pool left
broken connections in the pool
DATAREDIS-54, DATAREDIS-174, DATAREDIS-129
- Switch to original JRedis for 2.6 support
- Remove base64 encoding as new JRedis supports binary
keys
- Add JredisPool interface to replace removed
JRedisService and pool implementation
- Temporarily switch integration tests to use
non-pooled connections
- Throw more specific Exception on JRedis connection
failures
DATAREDIS-191
- Wrap native Exceptions in RedisConnectionFailureExceptions
- Support switching from shared to non-shared connection
by resetting shared connection in afterPropertiesSet
As a convenience when configuring with Java, added another constructor
call that allows setting the delegate and the default listener method
in one line of code.
```java
public MessageListenerAdapter(Object delegate, String defaultListenerMethod) {
this(delegate);
setDefaultListenerMethod(defaultListenerMethod);
}
```
This supports configuring a POJO-based listener with a single step:
```java
@Test
public void testCustomMethodWithAlternateConstructor() throws Exception {
MessageListenerAdapter adapter = new MessageListenerAdapter(target, "customMethod");
adapter.afterPropertiesSet();
adapter.onMessage(STRING_MSG, null);
verify(target).customMethod(PAYLOAD);
}
```
A pure Java configuration bean can now look like this:
```java
@Bean
MessageListenerAdapter listenerAdapter(Receiver receiver) {
return new new MessageListenerAdapter(receiver, "pojoMethod");
}
@Bean
Receiver receiver() {
return new Receiver();
}
```
No longer do we have to A) assign the adapter to a variable and B) call
setDefaultListenerMethod, slimming down pure POJO configuration with pure
Java.
with Redis 2.6
Redis 2.6 responds to unsubscribe requests even if
not subscribed. This results in unread data on the
InputStream on Subscription close if extra
unsubscribe requests are issued. This causes
problems if connection is reused
(as in the case of Jedis pool).
- Only unsubscribe on Subscription close if still
subscribed
- Use dedicated connection for RJC subscriptions,
as RJC makes extra unsubscribe calls on subscriber
close
DATAREDIS-132, DATAREDIS-130, DATAREDIS-152
- Upgrade to fix broken config_get in SRP 0.2
- Fix syntax errors in sort methods
- Fix syntax errors in zRange/zRevRange methods
with offset and count
executed in the tx
DATAREDIS-123
- Close pipeline on exec if not explicitly
opened by user and return results of closePipeline,
not result of exec command
- Close pipeline on discard if not explicitly
opened by user