Commit Graph

849 Commits

Author SHA1 Message Date
Jennifer Hickey
a4f3d7db44 Add Redis 2.6 millisecond expiration commands
DATAREDIS-178

Add pExpire, pExpireAt, pTTl ops to connections
2013-06-12 14:03:00 -07:00
Jennifer Hickey
80ac1af812 Refactor connection tests with waitFor method
- Support more general test conditions that
require period checking until timeout occurs
2013-06-12 12:26:53 -07:00
Jennifer Hickey
cc33219d5a Make Jedis dependency optional
DATAREDIS-131
2013-06-11 18:14:46 -07:00
Jennifer Hickey
265d4cd18f Add default implementation of JredisPool
- 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
2013-06-11 18:02:07 -07:00
Jennifer Hickey
280e6a6ccc Upgrade to JRedis master
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
2013-06-11 17:56:25 -07:00
Jennifer Hickey
dffa1de6d1 Remove RJC driver due to lack of Redis 2.6 support
DATAREDIS-185
2013-06-11 15:25:01 -07:00
Jennifer Hickey
66139f9fae Wrap native Exceptions in LettuceConnectionFactory
DATAREDIS-191

- Wrap native Exceptions in RedisConnectionFailureExceptions 

- Support switching from shared to non-shared connection
by resetting shared connection in afterPropertiesSet
2013-06-04 11:54:21 -07:00
Jennifer Hickey
931f0ff44c Update version to 1.1.0.BUILD-SNAPSHOT 2013-06-03 12:30:30 -07:00
jencompgeek
e110572214 Merge pull request #10 from gregturn/DATAREDIS-190
Add alternate constructor to MessageListenerAdapter
2013-06-03 12:08:46 -07:00
Greg Turnquist
49dc960ab2 Add alternate constructor to MessageListenerAdapter
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.
2013-05-31 11:16:31 -04:00
Jennifer Hickey
7c8dafce67 Redis timeouts should not be converted to 0
DATAREDIS-176

Only convert timeouts in Redis commands to 0 sec if
the value to convert is 0, otherwise round up to 1
2013-05-30 11:05:03 -07:00
Jennifer Hickey
db7b07788f Fix Lettuce compareAndSet
DATAREDIS-122

- exec() now returns null if value modified by other thread

- Use same connection for watch/unwatch and txs
2013-05-28 13:55:53 -07:00
Jennifer Hickey
92a4345716 Upgrade Lettuce to 2.3.2 2013-05-26 14:59:50 -07:00
Spring Buildmaster
e27c89d376 [artifactory-release] Next development version 2013-04-23 13:53:55 -07:00
Jennifer Hickey
3442463c05 Update changelog 2013-04-18 12:41:55 -07:00
Jennifer Hickey
5dfb8c447f Add documentation on Redis transactions
DATAREDIS-125
2013-04-18 12:13:11 -07:00
Jennifer Hickey
39b83cea88 Fix NPE in Lettuce sort 2013-04-17 17:37:39 -07:00
Jennifer Hickey
0c9e8f5054 Fix corrupt subscription connections return to pool
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
2013-04-17 10:03:09 -07:00
Jennifer Hickey
c7555dddff Avoid NPE on LettuceConnectionFactory destroy 2013-04-16 20:14:49 -07:00
Jennifer Hickey
a41c433c97 Move common test functionality to helper classes 2013-04-16 20:14:05 -07:00
Jennifer Hickey
7c96b80e54 Make LettuceConnectionFactory thread-safe 2013-04-15 14:27:28 -07:00
Jennifer Hickey
3d4b3cfd32 Fix tests for Redis 2.6 2013-04-12 20:15:35 -07:00
Jennifer Hickey
d565786fef Fix SubscriptionConnectionTests timing issues 2013-04-12 20:14:51 -07:00
Jennifer Hickey
7d485d6463 Upgrade to SRP 0.5
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
2013-04-12 11:01:18 -07:00
Jennifer Hickey
aaa28495be Fix SRP exec not returning results of commands
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
2013-04-11 15:19:32 -07:00
Jennifer Hickey
7813a13f7a Add option to disable Lettuce connection sharing 2013-04-10 17:34:29 -07:00
Jennifer Hickey
0a702bf4af Share native connection between LettuceConnections
to minimize socket usage

DATAREDIS-126
2013-04-10 15:09:11 -07:00
Jennifer Hickey
f4f9f06356 Fix SRP zRevRangeByScore incorrect parameter ordering
DATAREDIS-167
2013-04-09 17:29:53 -07:00
Jennifer Hickey
f6c44dba78 Fix Lettuce and RJC zRevRangeByScore incorrect parameter ordering
DATAREDIS-167

- Fix min/max parameter ordering

- Fix Lettuce NPEs during transactions

- Fix LettuceConnection not passing offset/count to zRevRangeByScoreWithScores
2013-04-09 17:13:01 -07:00
Jennifer Hickey
a01db2b732 Add back synchronization to avoid corrupted subscription input/output streams
- Prevent simultaneous write of subscribe/unsubscribe using the same Connection

- Fix test failure by re-initializing "done" state of SubscriptionTask between runs and adding waits
2013-04-04 23:29:42 -07:00
Jennifer Hickey
8fbabb7eae Add connection pool timeout to test 2013-04-04 20:56:23 -07:00
Jennifer Hickey
6f1739a681 Fix SubscriptionTask leaving open connections
DATAREDIS-124

- Close connection when SubscriptionTask is canceled and subscribing thread is unblocked

- Ensure non-blocking Lettuce and SRP only attempt
to close subscriptions if active

- Cleanup unecessary synchronization between
SubscriptionTask methods, now that connection is
no longer set to null

- Cleanup unused monitor notify when SubscriptionTask thread ends
2013-04-04 14:59:51 -07:00
Jennifer Hickey
2291edae67 Fix messages not received if listening on channel and pattern
DATAREDIS-165

Infinite loop in PatternSubscriptionTask causing
broken pipes and unreceived messages
2013-04-04 11:27:28 -07:00
Jennifer Hickey
78ad1a7cd4 Fix NPEs and incorrect results in several ops within a Lettuce transaction
DATAREDIS-164
2013-04-02 16:54:48 -07:00
Jennifer Hickey
5bd03c0aa5 Ignore irrelevant tests of blocking ops in transactions 2013-04-02 16:24:06 -07:00
Jennifer Hickey
d34cf27996 Fix Jedis and RJC continuing to use pipeline after closed
DATAREDIS-162, DATAREDIS-163
2013-04-02 15:49:56 -07:00
Jennifer Hickey
c5c3a81f42 Fix Jedis brPop executes twice in a transaction
DATAREDIS-159
2013-04-01 16:45:40 -07:00
Jennifer Hickey
4e13ac5b86 Fix Jedis persist does not execute as part of a transaction
DATAREDIS-160
2013-04-01 16:44:51 -07:00
Jennifer Hickey
634e8ccd72 Add tests for Jedis ops in transactions 2013-04-01 16:34:17 -07:00
Jennifer Hickey
8ec6b79e09 Fix JedisConnection execute does not return correct results
DATAREDIS-158
2013-04-01 16:08:38 -07:00
Jennifer Hickey
63a79a4ebb Fix SRP zCount/zInterStore methods executing synchronously when pipelining
DATAREDIS-142
2013-04-01 10:32:12 -07:00
Jennifer Hickey
90affe90cb Fix RJC ping executing synchronously while in pipeline 2013-04-01 10:28:45 -07:00
Jennifer Hickey
a421238403 Fix RJC zRevRangeWithScores returns incorrect results
DATAREDIS-137
2013-04-01 10:27:39 -07:00
Jennifer Hickey
97ebd34b2d Fix Lettuce zCount/zInterStore ops executing synchronously while in pipeline
DATAREDIS-140
2013-04-01 10:22:33 -07:00
Jennifer Hickey
a40555ed19 Fix Lettuce exec to return null when pipelining
DATAREDIS-139
2013-04-01 10:17:19 -07:00
Jennifer Hickey
b3a0deebf8 Fix Jedis dbSize and flush ops executing synchronously while in pipeline or tx
DATAREDIS-141
2013-04-01 10:07:32 -07:00
Jennifer Hickey
fb25e79380 Fix NPE when deserializing a null Map
DATAREDIS-138
2013-04-01 09:53:08 -07:00
Jennifer Hickey
323f8097a7 Only run SRP getRange tests if Redis version >= 2.4 2013-03-31 11:09:25 -07:00
Jennifer Hickey
14087cbdc4 Fix SRP continuing to use pipeline after closed
DATAREDIS-157
2013-03-31 11:06:26 -07:00
Jennifer Hickey
65535d08ec Rename test context file for case-sensitivity 2013-03-31 11:04:13 -07:00