From af51a3f2b8f848c940bef9f7c8f840260bc2c7f6 Mon Sep 17 00:00:00 2001 From: Nikita Date: Fri, 11 May 2018 11:44:52 +0300 Subject: [PATCH] refactoring --- .../org/redisson/api/TransactionOptions.java | 5 +++ .../connection/SentinelConnectionManager.java | 2 +- .../transaction/RedissonTransaction.java | 45 ++++++++++++++----- .../operation/DeleteOperation.java | 6 ++- .../transaction/operation/TouchOperation.java | 6 ++- .../operation/TransactionalOperation.java | 7 ++- .../operation/UnlinkOperation.java | 6 ++- .../bucket/BucketCompareAndSetOperation.java | 18 ++++++-- .../bucket/BucketGetAndDeleteOperation.java | 6 ++- .../bucket/BucketGetAndSetOperation.java | 12 ++++- .../operation/bucket/BucketSetOperation.java | 22 +++++++-- .../bucket/BucketTrySetOperation.java | 22 +++++++-- .../operation/map/MapAddAndGetOperation.java | 3 ++ .../map/MapCacheFastPutIfAbsentOperation.java | 18 +++++++- .../map/MapCacheFastPutOperation.java | 19 ++++++++ .../map/MapCachePutIfAbsentOperation.java | 19 ++++++++ .../operation/map/MapCachePutOperation.java | 19 ++++++++ .../map/MapFastPutIfAbsentOperation.java | 3 ++ .../operation/map/MapFastPutOperation.java | 3 ++ .../operation/map/MapFastRemoveOperation.java | 3 ++ .../operation/map/MapOperation.java | 17 +++++-- .../map/MapPutIfAbsentOperation.java | 3 ++ .../operation/map/MapPutOperation.java | 3 ++ .../operation/map/MapRemoveOperation.java | 3 ++ .../operation/map/MapReplaceOperation.java | 3 ++ .../operation/set/AddCacheOperation.java | 26 ++++++++--- .../operation/set/AddOperation.java | 13 +++++- .../operation/set/MoveOperation.java | 25 +++++++++-- .../operation/set/RemoveCacheOperation.java | 13 +++++- .../operation/set/RemoveOperation.java | 13 +++++- 30 files changed, 314 insertions(+), 49 deletions(-) diff --git a/redisson/src/main/java/org/redisson/api/TransactionOptions.java b/redisson/src/main/java/org/redisson/api/TransactionOptions.java index 5ff72e587..436ad55ed 100644 --- a/redisson/src/main/java/org/redisson/api/TransactionOptions.java +++ b/redisson/src/main/java/org/redisson/api/TransactionOptions.java @@ -118,6 +118,7 @@ public class TransactionOptions { } /** * If transaction hasn't been committed within timeout it will rollback automatically. + * Set -1 to disable. *

* Default is 5000 milliseconds * @@ -126,6 +127,10 @@ public class TransactionOptions { * @return self instance */ public TransactionOptions timeout(long timeout, TimeUnit timeoutUnit) { + if (timeout == -1) { + this.timeout = timeout; + return this; + } this.timeout = timeoutUnit.toMillis(timeout); return this; } diff --git a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java index 4e74375f4..a5c752d98 100755 --- a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java @@ -425,7 +425,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { } private RFuture registerSentinel(final URI addr, final MasterSlaveServersConfig c) { - String key = addr.getHost() + ":" + addr.getPort(); + final String key = addr.getHost() + ":" + addr.getPort(); RedisClient sentinel = sentinels.get(key); if (sentinel != null) { return RedissonPromise.newSucceededFuture(null); diff --git a/redisson/src/main/java/org/redisson/transaction/RedissonTransaction.java b/redisson/src/main/java/org/redisson/transaction/RedissonTransaction.java index 0f82016b9..2c8ce9d68 100644 --- a/redisson/src/main/java/org/redisson/transaction/RedissonTransaction.java +++ b/redisson/src/main/java/org/redisson/transaction/RedissonTransaction.java @@ -79,8 +79,8 @@ public class RedissonTransaction implements RTransaction { private final AtomicBoolean executed = new AtomicBoolean(); private final TransactionOptions options; - private final List operations = new ArrayList(); - private final Set localCaches = new HashSet(); + private List operations = new ArrayList(); + private Set localCaches = new HashSet(); private final long startTime = System.currentTimeMillis(); public RedissonTransaction(CommandAsyncExecutor commandExecutor, TransactionOptions options) { @@ -89,6 +89,15 @@ public class RedissonTransaction implements RTransaction { this.commandExecutor = commandExecutor; } + public RedissonTransaction(CommandAsyncExecutor commandExecutor, TransactionOptions options, + List operations, Set localCaches) { + super(); + this.commandExecutor = commandExecutor; + this.options = options; + this.operations = operations; + this.localCaches = localCaches; + } + @Override public RLocalCachedMap getLocalCachedMap(RLocalCachedMap fromInstance) { checkState(); @@ -183,7 +192,7 @@ public class RedissonTransaction implements RTransaction { final String id = generateId(); final RPromise result = new RedissonPromise(); - RFuture> future = disableLocalCacheAsync(id); + RFuture> future = disableLocalCacheAsync(id, localCaches, operations); future.addListener(new FutureListener>() { @Override public void operationComplete(Future> future) throws Exception { @@ -224,7 +233,6 @@ public class RedissonTransaction implements RTransaction { } enableLocalCacheAsync(id, hashes); - operations.clear(); executed.set(true); result.trySuccess(null); @@ -234,9 +242,13 @@ public class RedissonTransaction implements RTransaction { }); return result; } - + @Override public void commit() { + commit(localCaches, operations); + } + + public void commit(Set localCaches, List operations) { checkState(); checkTimeout(); @@ -248,7 +260,7 @@ public class RedissonTransaction implements RTransaction { } String id = generateId(); - Map hashes = disableLocalCache(id); + Map hashes = disableLocalCache(id, localCaches, operations); try { checkTimeout(); @@ -278,12 +290,11 @@ public class RedissonTransaction implements RTransaction { enableLocalCache(id, hashes); - operations.clear(); executed.set(true); } private void checkTimeout() { - if (System.currentTimeMillis() - startTime > options.getTimeout()) { + if (options.getTimeout() != -1 && System.currentTimeMillis() - startTime > options.getTimeout()) { throw new TransactionTimeoutException("Transaction was discarded due to timeout " + options.getTimeout() + " milliseconds"); } } @@ -324,7 +335,7 @@ public class RedissonTransaction implements RTransaction { } } - private Map disableLocalCache(String requestId) { + private Map disableLocalCache(String requestId, Set localCaches, List operations) { if (localCaches.isEmpty()) { return Collections.emptyMap(); } @@ -420,7 +431,7 @@ public class RedissonTransaction implements RTransaction { return hashes; } - private RFuture> disableLocalCacheAsync(final String requestId) { + private RFuture> disableLocalCacheAsync(final String requestId, Set localCaches, List operations) { if (localCaches.isEmpty()) { return RedissonPromise.newSucceededFuture(Collections.emptyMap()); } @@ -559,9 +570,13 @@ public class RedissonTransaction implements RTransaction { PlatformDependent.threadLocalRandom().nextBytes(id); return ByteBufUtil.hexDump(id); } - + @Override public void rollback() { + rollback(operations); + } + + public void rollback(List operations) { checkState(); CommandBatchService executorService = new CommandBatchService(commandExecutor.getConnectionManager()); @@ -605,6 +620,14 @@ public class RedissonTransaction implements RTransaction { }); return result; } + + public Set getLocalCaches() { + return localCaches; + } + + public List getOperations() { + return operations; + } protected void checkState() { if (executed.get()) { diff --git a/redisson/src/main/java/org/redisson/transaction/operation/DeleteOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/DeleteOperation.java index 118ce40c2..c238b505f 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/DeleteOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/DeleteOperation.java @@ -27,7 +27,7 @@ import org.redisson.command.CommandAsyncExecutor; */ public class DeleteOperation extends TransactionalOperation { - private final String lockName; + private String lockName; public DeleteOperation(String name) { this(name, null); @@ -55,5 +55,9 @@ public class DeleteOperation extends TransactionalOperation { lock.unlockAsync(); } } + + public String getLockName() { + return lockName; + } } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/TouchOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/TouchOperation.java index dec8f5466..143dee4e4 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/TouchOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/TouchOperation.java @@ -27,7 +27,7 @@ import org.redisson.command.CommandAsyncExecutor; */ public class TouchOperation extends TransactionalOperation { - private final String lockName; + private String lockName; public TouchOperation(String name) { this(name, null); @@ -51,5 +51,9 @@ public class TouchOperation extends TransactionalOperation { RedissonLock lock = new RedissonLock(commandExecutor, lockName); lock.unlockAsync(); } + + public String getLockName() { + return lockName; + } } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/TransactionalOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/TransactionalOperation.java index e756d4f27..03ddd177f 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/TransactionalOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/TransactionalOperation.java @@ -25,8 +25,11 @@ import org.redisson.command.CommandAsyncExecutor; */ public abstract class TransactionalOperation { - protected final Codec codec; - protected final String name; + protected Codec codec; + protected String name; + + public TransactionalOperation() { + } public TransactionalOperation(String name, Codec codec) { this.name = name; diff --git a/redisson/src/main/java/org/redisson/transaction/operation/UnlinkOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/UnlinkOperation.java index e94b7a165..541a2f9de 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/UnlinkOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/UnlinkOperation.java @@ -27,7 +27,7 @@ import org.redisson.command.CommandAsyncExecutor; */ public class UnlinkOperation extends TransactionalOperation { - private final String lockName; + private String lockName; public UnlinkOperation(String name) { this(name, null); @@ -55,5 +55,9 @@ public class UnlinkOperation extends TransactionalOperation { lock.unlockAsync(); } } + + public String getLockName() { + return lockName; + } } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketCompareAndSetOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketCompareAndSetOperation.java index 32e1a0989..ec51042b4 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketCompareAndSetOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketCompareAndSetOperation.java @@ -29,9 +29,9 @@ import org.redisson.transaction.operation.TransactionalOperation; */ public class BucketCompareAndSetOperation extends TransactionalOperation { - private final V expected; - private final V value; - private final String lockName; + private V expected; + private V value; + private String lockName; public BucketCompareAndSetOperation(String name, String lockName, Codec codec, V expected, V value) { super(name, codec); @@ -53,5 +53,17 @@ public class BucketCompareAndSetOperation extends TransactionalOperation { RedissonLock lock = new RedissonLock(commandExecutor, lockName); lock.unlockAsync(); } + + public V getExpected() { + return expected; + } + + public V getValue() { + return value; + } + + public String getLockName() { + return lockName; + } } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketGetAndDeleteOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketGetAndDeleteOperation.java index 1704110ee..e03bf82e1 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketGetAndDeleteOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketGetAndDeleteOperation.java @@ -29,7 +29,7 @@ import org.redisson.transaction.operation.TransactionalOperation; */ public class BucketGetAndDeleteOperation extends TransactionalOperation { - private final String lockName; + private String lockName; public BucketGetAndDeleteOperation(String name, String lockName, Codec codec) { super(name, codec); @@ -49,5 +49,9 @@ public class BucketGetAndDeleteOperation extends TransactionalOperation { RedissonLock lock = new RedissonLock(commandExecutor, lockName); lock.unlockAsync(); } + + public String getLockName() { + return lockName; + } } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketGetAndSetOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketGetAndSetOperation.java index cdc8c22b2..2bad9b7bc 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketGetAndSetOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketGetAndSetOperation.java @@ -29,8 +29,8 @@ import org.redisson.transaction.operation.TransactionalOperation; */ public class BucketGetAndSetOperation extends TransactionalOperation { - private final Object value; - private final String lockName; + private Object value; + private String lockName; public BucketGetAndSetOperation(String name, String lockName, Codec codec, Object value) { super(name, codec); @@ -51,5 +51,13 @@ public class BucketGetAndSetOperation extends TransactionalOperation { RedissonLock lock = new RedissonLock(commandExecutor, lockName); lock.unlockAsync(); } + + public Object getValue() { + return value; + } + + public String getLockName() { + return lockName; + } } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketSetOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketSetOperation.java index 7a6c2b226..5a26cea3c 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketSetOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketSetOperation.java @@ -31,11 +31,11 @@ import org.redisson.transaction.operation.TransactionalOperation; */ public class BucketSetOperation extends TransactionalOperation { - private final Object value; - private final String lockName; + private Object value; + private String lockName; private long timeToLive; private TimeUnit timeUnit; - + public BucketSetOperation(String name, String lockName, Codec codec, Object value, long timeToLive, TimeUnit timeUnit) { this(name, lockName, codec, value); this.timeToLive = timeToLive; @@ -65,5 +65,21 @@ public class BucketSetOperation extends TransactionalOperation { RedissonLock lock = new RedissonLock(commandExecutor, lockName); lock.unlockAsync(); } + + public Object getValue() { + return value; + } + + public String getLockName() { + return lockName; + } + + public long getTimeToLive() { + return timeToLive; + } + + public TimeUnit getTimeUnit() { + return timeUnit; + } } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketTrySetOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketTrySetOperation.java index 11aa175ae..6cce9c02d 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketTrySetOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/bucket/BucketTrySetOperation.java @@ -31,11 +31,11 @@ import org.redisson.transaction.operation.TransactionalOperation; */ public class BucketTrySetOperation extends TransactionalOperation { - private final Object value; - private final String lockName; + private Object value; + private String lockName; private long timeToLive; private TimeUnit timeUnit; - + public BucketTrySetOperation(String name, String lockName, Codec codec, Object value, long timeToLive, TimeUnit timeUnit) { this(name, lockName, codec, value); this.timeToLive = timeToLive; @@ -65,5 +65,21 @@ public class BucketTrySetOperation extends TransactionalOperation { RedissonLock lock = new RedissonLock(commandExecutor, lockName); lock.unlockAsync(); } + + public Object getValue() { + return value; + } + + public String getLockName() { + return lockName; + } + + public long getTimeToLive() { + return timeToLive; + } + + public TimeUnit getTimeUnit() { + return timeUnit; + } } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapAddAndGetOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapAddAndGetOperation.java index d537c3ace..f6b1e7ce0 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapAddAndGetOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapAddAndGetOperation.java @@ -24,6 +24,9 @@ import org.redisson.api.RMap; */ public class MapAddAndGetOperation extends MapOperation { + public MapAddAndGetOperation() { + } + public MapAddAndGetOperation(RMap map, Object key, Object value) { super(map, key, value); } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapCacheFastPutIfAbsentOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapCacheFastPutIfAbsentOperation.java index 733ef8351..b03e25b25 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapCacheFastPutIfAbsentOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapCacheFastPutIfAbsentOperation.java @@ -31,7 +31,7 @@ public class MapCacheFastPutIfAbsentOperation extends MapOperation { private TimeUnit ttlUnit; private long maxIdleTime; private TimeUnit maxIdleUnit; - + public MapCacheFastPutIfAbsentOperation(RMap map, Object key, Object value, long ttl, TimeUnit ttlUnit, long maxIdleTime, TimeUnit maxIdleUnit) { super(map, key, value); @@ -46,4 +46,20 @@ public class MapCacheFastPutIfAbsentOperation extends MapOperation { ((RMapCache)map).fastPutIfAbsentAsync(key, value, ttl, ttlUnit, maxIdleTime, maxIdleUnit); } + public long getTTL() { + return ttl; + } + + public TimeUnit getTTLUnit() { + return ttlUnit; + } + + public long getMaxIdleTime() { + return maxIdleTime; + } + + public TimeUnit getMaxIdleUnit() { + return maxIdleUnit; + } + } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapCacheFastPutOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapCacheFastPutOperation.java index 7b9fc1f81..9fb93fcf5 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapCacheFastPutOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapCacheFastPutOperation.java @@ -32,6 +32,9 @@ public class MapCacheFastPutOperation extends MapOperation { private long maxIdleTime; private TimeUnit maxIdleUnit; + public MapCacheFastPutOperation() { + } + public MapCacheFastPutOperation(RMap map, Object key, Object value, long ttl, TimeUnit ttlUnit, long maxIdleTime, TimeUnit maxIdleUnit) { super(map, key, value); this.ttl = ttl; @@ -45,4 +48,20 @@ public class MapCacheFastPutOperation extends MapOperation { ((RMapCache)map).fastPutAsync(key, value, ttl, ttlUnit, maxIdleTime, maxIdleUnit); } + public long getTTL() { + return ttl; + } + + public TimeUnit getTTLUnit() { + return ttlUnit; + } + + public TimeUnit getMaxIdleUnit() { + return maxIdleUnit; + } + + public long getMaxIdleTime() { + return maxIdleTime; + } + } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapCachePutIfAbsentOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapCachePutIfAbsentOperation.java index c1b205e9c..a1cffdc7a 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapCachePutIfAbsentOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapCachePutIfAbsentOperation.java @@ -32,6 +32,9 @@ public class MapCachePutIfAbsentOperation extends MapOperation { private long maxIdleTime; private TimeUnit maxIdleUnit; + public MapCachePutIfAbsentOperation() { + } + public MapCachePutIfAbsentOperation(RMap map, Object key, Object value, long ttl, TimeUnit unit, long maxIdleTime, TimeUnit maxIdleUnit) { this(map, key, value); @@ -50,4 +53,20 @@ public class MapCachePutIfAbsentOperation extends MapOperation { ((RMapCache)map).putIfAbsentAsync(key, value, ttl, unit, maxIdleTime, maxIdleUnit); } + public long getTTL() { + return ttl; + } + + public TimeUnit getTTLUnit() { + return unit; + } + + public long getMaxIdleTime() { + return maxIdleTime; + } + + public TimeUnit getMaxIdleUnit() { + return maxIdleUnit; + } + } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapCachePutOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapCachePutOperation.java index cc60de07e..dd0c9e4f0 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapCachePutOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapCachePutOperation.java @@ -32,6 +32,9 @@ public class MapCachePutOperation extends MapOperation { private long maxIdleTimeout; private TimeUnit maxIdleUnit; + public MapCachePutOperation() { + } + public MapCachePutOperation(RMap map, Object key, Object value, long ttlTimeout, TimeUnit ttlUnit, long maxIdleTimeout, TimeUnit maxIdleUnit) { super(map, key, value); this.ttlTimeout = ttlTimeout; @@ -45,4 +48,20 @@ public class MapCachePutOperation extends MapOperation { ((RMapCache)map).putAsync(key, value, ttlTimeout, ttlUnit, maxIdleTimeout, maxIdleUnit); } + public long getTTL() { + return ttlTimeout; + } + + public TimeUnit getTTLUnit() { + return ttlUnit; + } + + public long getMaxIdleTimeout() { + return maxIdleTimeout; + } + + public TimeUnit getMaxIdleUnit() { + return maxIdleUnit; + } + } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastPutIfAbsentOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastPutIfAbsentOperation.java index bae9d2edc..e9b314d9a 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastPutIfAbsentOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastPutIfAbsentOperation.java @@ -24,6 +24,9 @@ import org.redisson.api.RMap; */ public class MapFastPutIfAbsentOperation extends MapOperation { + public MapFastPutIfAbsentOperation() { + } + public MapFastPutIfAbsentOperation(RMap map, Object key, Object value) { super(map, key, value); } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastPutOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastPutOperation.java index 318dcc356..d8c7f0b0c 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastPutOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastPutOperation.java @@ -24,6 +24,9 @@ import org.redisson.api.RMap; */ public class MapFastPutOperation extends MapOperation { + public MapFastPutOperation() { + } + public MapFastPutOperation(RMap map, Object key, Object value) { super(map, key, value); } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastRemoveOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastRemoveOperation.java index 8366804f1..2f1eb5ca0 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastRemoveOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapFastRemoveOperation.java @@ -24,6 +24,9 @@ import org.redisson.api.RMap; */ public class MapFastRemoveOperation extends MapOperation { + public MapFastRemoveOperation() { + } + public MapFastRemoveOperation(RMap map, Object key) { super(map, key, null); } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapOperation.java index 2a9741943..cd3d32443 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapOperation.java @@ -29,10 +29,13 @@ import org.redisson.transaction.operation.TransactionalOperation; */ public abstract class MapOperation extends TransactionalOperation { - final Object key; - final Object value; - final Object oldValue; - final RMap map; + Object key; + Object value; + Object oldValue; + RMap map; + + public MapOperation() { + } public MapOperation(RMap map, Object key, Object value) { this(map, key, value, null); @@ -76,5 +79,11 @@ public abstract class MapOperation extends TransactionalOperation { protected abstract void commit(RMap map); + public Object getValue() { + return value; + } + public Object getOldValue() { + return oldValue; + } } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapPutIfAbsentOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapPutIfAbsentOperation.java index daba59542..638c7571d 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapPutIfAbsentOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapPutIfAbsentOperation.java @@ -24,6 +24,9 @@ import org.redisson.api.RMap; */ public class MapPutIfAbsentOperation extends MapOperation { + public MapPutIfAbsentOperation() { + } + public MapPutIfAbsentOperation(RMap map, Object key, Object value) { super(map, key, value); } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapPutOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapPutOperation.java index a3e205dee..6482ea9bd 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapPutOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapPutOperation.java @@ -24,6 +24,9 @@ import org.redisson.api.RMap; */ public class MapPutOperation extends MapOperation { + public MapPutOperation() { + } + public MapPutOperation(RMap map, Object key, Object value) { super(map, key, value); } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapRemoveOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapRemoveOperation.java index d7facb668..040a9c9c7 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapRemoveOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapRemoveOperation.java @@ -24,6 +24,9 @@ import org.redisson.api.RMap; */ public class MapRemoveOperation extends MapOperation { + public MapRemoveOperation() { + } + public MapRemoveOperation(RMap map, Object key) { super(map, key, null); } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/map/MapReplaceOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/map/MapReplaceOperation.java index 13ec4a874..bbaa40147 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/map/MapReplaceOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/map/MapReplaceOperation.java @@ -24,6 +24,9 @@ import org.redisson.api.RMap; */ public class MapReplaceOperation extends MapOperation { + public MapReplaceOperation() { + } + public MapReplaceOperation(RMap map, Object key, Object value, Object oldValue) { super(map, key, value, oldValue); } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/set/AddCacheOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/set/AddCacheOperation.java index 343ba95b7..8e401b313 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/set/AddCacheOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/set/AddCacheOperation.java @@ -20,6 +20,7 @@ import java.util.concurrent.TimeUnit; import org.redisson.RedissonSetCache; import org.redisson.api.RObject; import org.redisson.api.RSetCache; +import org.redisson.client.codec.Codec; import org.redisson.command.CommandAsyncExecutor; import org.redisson.transaction.operation.TransactionalOperation; @@ -30,22 +31,25 @@ import org.redisson.transaction.operation.TransactionalOperation; */ public class AddCacheOperation extends TransactionalOperation { - final Object value; - final long ttl; - final TimeUnit timeUnit; + private Object value; + private long ttl; + private TimeUnit timeUnit; public AddCacheOperation(RObject set, Object value) { this(set, value, 0, null); } public AddCacheOperation(RObject set, Object value, long ttl, TimeUnit timeUnit) { - super(set.getName(), set.getCodec()); + this(set.getName(), set.getCodec(), value, ttl, timeUnit); + } + + public AddCacheOperation(String name, Codec codec, Object value, long ttl, TimeUnit timeUnit) { + super(name, codec); this.value = value; this.timeUnit = timeUnit; this.ttl = ttl; } - @Override public void commit(CommandAsyncExecutor commandExecutor) { RSetCache set = new RedissonSetCache(codec, null, commandExecutor, name, null); @@ -63,4 +67,16 @@ public class AddCacheOperation extends TransactionalOperation { set.getLock(value).unlockAsync(); } + public Object getValue() { + return value; + } + + public TimeUnit getTimeUnit() { + return timeUnit; + } + + public long getTTL() { + return ttl; + } + } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/set/AddOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/set/AddOperation.java index 8814039b9..dc1b59de6 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/set/AddOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/set/AddOperation.java @@ -18,6 +18,7 @@ package org.redisson.transaction.operation.set; import org.redisson.RedissonSet; import org.redisson.api.RObject; import org.redisson.api.RSet; +import org.redisson.client.codec.Codec; import org.redisson.command.CommandAsyncExecutor; import org.redisson.transaction.operation.TransactionalOperation; @@ -28,10 +29,14 @@ import org.redisson.transaction.operation.TransactionalOperation; */ public class AddOperation extends TransactionalOperation { - final Object value; + private Object value; public AddOperation(RObject set, Object value) { - super(set.getName(), set.getCodec()); + this(set.getName(), set.getCodec(), value); + } + + public AddOperation(String name, Codec codec, Object value) { + super(name, codec); this.value = value; } @@ -48,4 +53,8 @@ public class AddOperation extends TransactionalOperation { set.getLock(value).unlockAsync(); } + public Object getValue() { + return value; + } + } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/set/MoveOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/set/MoveOperation.java index 667650f32..3a9f5e1fc 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/set/MoveOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/set/MoveOperation.java @@ -18,6 +18,7 @@ package org.redisson.transaction.operation.set; import org.redisson.RedissonSet; import org.redisson.api.RObject; import org.redisson.api.RSet; +import org.redisson.client.codec.Codec; import org.redisson.command.CommandAsyncExecutor; import org.redisson.transaction.operation.TransactionalOperation; @@ -28,12 +29,16 @@ import org.redisson.transaction.operation.TransactionalOperation; */ public class MoveOperation extends TransactionalOperation { - final String destinationName; - final Object value; - final long threadId; + private String destinationName; + private Object value; + private long threadId; public MoveOperation(RObject set, String destinationName, long threadId, Object value) { - super(set.getName(), set.getCodec()); + this(set.getName(), set.getCodec(), destinationName, threadId, value); + } + + public MoveOperation(String name, Codec codec, String destinationName, long threadId, Object value) { + super(name, codec); this.destinationName = destinationName; this.value = value; this.threadId = threadId; @@ -55,5 +60,17 @@ public class MoveOperation extends TransactionalOperation { destinationSet.getLock(value).unlockAsync(threadId); set.getLock(value).unlockAsync(threadId); } + + public String getDestinationName() { + return destinationName; + } + + public Object getValue() { + return value; + } + + public long getThreadId() { + return threadId; + } } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/set/RemoveCacheOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/set/RemoveCacheOperation.java index fa288f6e2..7a7136db7 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/set/RemoveCacheOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/set/RemoveCacheOperation.java @@ -18,6 +18,7 @@ package org.redisson.transaction.operation.set; import org.redisson.RedissonSetCache; import org.redisson.api.RObject; import org.redisson.api.RSetCache; +import org.redisson.client.codec.Codec; import org.redisson.command.CommandAsyncExecutor; import org.redisson.transaction.operation.TransactionalOperation; @@ -28,10 +29,14 @@ import org.redisson.transaction.operation.TransactionalOperation; */ public class RemoveCacheOperation extends TransactionalOperation { - final Object value; + private Object value; public RemoveCacheOperation(RObject set, Object value) { - super(set.getName(), set.getCodec()); + this(set.getName(), set.getCodec(), value); + } + + public RemoveCacheOperation(String name, Codec codec, Object value) { + super(name, codec); this.value = value; } @@ -47,5 +52,9 @@ public class RemoveCacheOperation extends TransactionalOperation { RSetCache set = new RedissonSetCache(codec, null, commandExecutor, name, null); set.getLock(value).unlockAsync(); } + + public Object getValue() { + return value; + } } diff --git a/redisson/src/main/java/org/redisson/transaction/operation/set/RemoveOperation.java b/redisson/src/main/java/org/redisson/transaction/operation/set/RemoveOperation.java index 8f44a6fad..1a2b90d0e 100644 --- a/redisson/src/main/java/org/redisson/transaction/operation/set/RemoveOperation.java +++ b/redisson/src/main/java/org/redisson/transaction/operation/set/RemoveOperation.java @@ -18,6 +18,7 @@ package org.redisson.transaction.operation.set; import org.redisson.RedissonSet; import org.redisson.api.RObject; import org.redisson.api.RSet; +import org.redisson.client.codec.Codec; import org.redisson.command.CommandAsyncExecutor; import org.redisson.transaction.operation.TransactionalOperation; @@ -28,10 +29,14 @@ import org.redisson.transaction.operation.TransactionalOperation; */ public class RemoveOperation extends TransactionalOperation { - final Object value; + private Object value; public RemoveOperation(RObject set, Object value) { - super(set.getName(), set.getCodec()); + this(set.getName(), set.getCodec(), value); + } + + public RemoveOperation(String name, Codec codec, Object value) { + super(name, codec); this.value = value; } @@ -48,4 +53,8 @@ public class RemoveOperation extends TransactionalOperation { set.getLock(value).unlockAsync(); } + public Object getValue() { + return value; + } + }