Skip to content

Commit

Permalink
MapLoader support for RMap added. #927
Browse files Browse the repository at this point in the history
  • Loading branch information
Nikita committed Jun 19, 2017
1 parent 895994a commit 2da21fb
Show file tree
Hide file tree
Showing 16 changed files with 574 additions and 80 deletions.
34 changes: 28 additions & 6 deletions redisson/src/main/java/org/redisson/Redisson.java
Expand Up @@ -69,6 +69,8 @@
import org.redisson.api.RTopic;
import org.redisson.api.RedissonClient;
import org.redisson.api.RedissonReactiveClient;
import org.redisson.api.map.MapLoader;
import org.redisson.api.map.MapWriter;
import org.redisson.client.codec.Codec;
import org.redisson.codec.CodecProvider;
import org.redisson.command.CommandExecutor;
Expand Down Expand Up @@ -252,18 +254,23 @@ public <K, V> RListMultimap<K, V> getListMultimap(String name, Codec codec) {
}

@Override
public <K, V> RLocalCachedMap<K, V> getLocalCachedMap(String name, LocalCachedMapOptions options) {
public <K, V> RLocalCachedMap<K, V> getLocalCachedMap(String name, LocalCachedMapOptions<K, V> options) {
return new RedissonLocalCachedMap<K, V>(connectionManager.getCommandExecutor(), name, options, evictionScheduler, this);
}

@Override
public <K, V> RLocalCachedMap<K, V> getLocalCachedMap(String name, Codec codec, LocalCachedMapOptions options) {
public <K, V> RLocalCachedMap<K, V> getLocalCachedMap(String name, Codec codec, LocalCachedMapOptions<K, V> options) {
return new RedissonLocalCachedMap<K, V>(codec, connectionManager.getCommandExecutor(), name, options, evictionScheduler, this);
}

@Override
public <K, V> RMap<K, V> getMap(String name) {
return new RedissonMap<K, V>(connectionManager.getCommandExecutor(), name, this);
return new RedissonMap<K, V>(connectionManager.getCommandExecutor(), name, this, null, null);
}

@Override
public <K, V> RMap<K, V> getMap(String name, MapLoader<K, V> mapLoader, MapWriter<K, V> mapWriter) {
return new RedissonMap<K, V>(connectionManager.getCommandExecutor(), name, this, mapLoader, mapWriter);
}

@Override
Expand Down Expand Up @@ -308,17 +315,32 @@ public <V> RSetCache<V> getSetCache(String name, Codec codec) {

@Override
public <K, V> RMapCache<K, V> getMapCache(String name) {
return new RedissonMapCache<K, V>(evictionScheduler, connectionManager.getCommandExecutor(), name, this);
return new RedissonMapCache<K, V>(evictionScheduler, connectionManager.getCommandExecutor(), name, this, null, null);
}

@Override
public <K, V> RMapCache<K, V> getMapCache(String name, MapLoader<K, V> mapLoader, MapWriter<K, V> mapWriter) {
return new RedissonMapCache<K, V>(evictionScheduler, connectionManager.getCommandExecutor(), name, this, mapLoader, mapWriter);
}

@Override
public <K, V> RMapCache<K, V> getMapCache(String name, Codec codec) {
return new RedissonMapCache<K, V>(codec, evictionScheduler, connectionManager.getCommandExecutor(), name, this);
return new RedissonMapCache<K, V>(codec, evictionScheduler, connectionManager.getCommandExecutor(), name, this, null, null);
}

@Override
public <K, V> RMapCache<K, V> getMapCache(String name, Codec codec, MapLoader<K, V> mapLoader, MapWriter<K, V> mapWriter) {
return new RedissonMapCache<K, V>(codec, evictionScheduler, connectionManager.getCommandExecutor(), name, this, mapLoader, mapWriter);
}

@Override
public <K, V> RMap<K, V> getMap(String name, Codec codec) {
return new RedissonMap<K, V>(codec, connectionManager.getCommandExecutor(), name, this);
return new RedissonMap<K, V>(codec, connectionManager.getCommandExecutor(), name, this, null, null);
}

@Override
public <K, V> RMap<K, V> getMap(String name, Codec codec, MapLoader<K, V> mapLoader, MapWriter<K, V> mapWriter) {
return new RedissonMap<K, V>(codec, connectionManager.getCommandExecutor(), name, this, mapLoader, mapWriter);
}

@Override
Expand Down
8 changes: 4 additions & 4 deletions redisson/src/main/java/org/redisson/RedissonBatch.java
Expand Up @@ -102,12 +102,12 @@ public <V> RListAsync<V> getList(String name, Codec codec) {

@Override
public <K, V> RMapAsync<K, V> getMap(String name) {
return new RedissonMap<K, V>(executorService, name, null);
return new RedissonMap<K, V>(executorService, name, null, null, null);
}

@Override
public <K, V> RMapAsync<K, V> getMap(String name, Codec codec) {
return new RedissonMap<K, V>(codec, executorService, name, null);
return new RedissonMap<K, V>(codec, executorService, name, null, null, null);
}

@Override
Expand Down Expand Up @@ -202,12 +202,12 @@ public RBitSetAsync getBitSet(String name) {

@Override
public <K, V> RMapCacheAsync<K, V> getMapCache(String name, Codec codec) {
return new RedissonMapCache<K, V>(codec, evictionScheduler, executorService, name, null);
return new RedissonMapCache<K, V>(codec, evictionScheduler, executorService, name, null, null, null);
}

@Override
public <K, V> RMapCacheAsync<K, V> getMapCache(String name) {
return new RedissonMapCache<K, V>(evictionScheduler, executorService, name, null);
return new RedissonMapCache<K, V>(evictionScheduler, executorService, name, null, null, null);
}

@Override
Expand Down
14 changes: 7 additions & 7 deletions redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java
Expand Up @@ -207,17 +207,17 @@ public String toString() {
private int invalidationStatusListenerId;
private volatile long lastInvalidate;

protected RedissonLocalCachedMap(CommandAsyncExecutor commandExecutor, String name, LocalCachedMapOptions options, EvictionScheduler evictionScheduler, RedissonClient redisson) {
super(commandExecutor, name, redisson);
protected RedissonLocalCachedMap(CommandAsyncExecutor commandExecutor, String name, LocalCachedMapOptions<K, V> options, EvictionScheduler evictionScheduler, RedissonClient redisson) {
super(commandExecutor, name, redisson, options.getMapLoader(), options.getMapWriter());
init(name, options, redisson, evictionScheduler);
}

protected RedissonLocalCachedMap(Codec codec, CommandAsyncExecutor connectionManager, String name, LocalCachedMapOptions options, EvictionScheduler evictionScheduler, RedissonClient redisson) {
super(codec, connectionManager, name, redisson);
protected RedissonLocalCachedMap(Codec codec, CommandAsyncExecutor connectionManager, String name, LocalCachedMapOptions<K, V> options, EvictionScheduler evictionScheduler, RedissonClient redisson) {
super(codec, connectionManager, name, redisson, options.getMapLoader(), options.getMapWriter());
init(name, options, redisson, evictionScheduler);
}

private void init(String name, LocalCachedMapOptions options, RedissonClient redisson, EvictionScheduler evictionScheduler) {
private void init(String name, LocalCachedMapOptions<K, V> options, RedissonClient redisson, EvictionScheduler evictionScheduler) {
instanceId = generateId();

if (options.getInvalidationPolicy() == InvalidationPolicy.ON_CHANGE
Expand All @@ -234,7 +234,7 @@ private void init(String name, LocalCachedMapOptions options, RedissonClient red
addListeners(name, options, redisson);
}

private void addListeners(String name, final LocalCachedMapOptions options, final RedissonClient redisson) {
private void addListeners(String name, final LocalCachedMapOptions<K, V> options, final RedissonClient redisson) {
invalidationTopic = new RedissonTopic<Object>(commandExecutor, suffixName(name, "topic"));

if (options.getInvalidationPolicy() == InvalidationPolicy.NONE) {
Expand Down Expand Up @@ -316,7 +316,7 @@ public void onMessage(String channel, Object msg) {
});
}

protected Cache<CacheKey, CacheValue> createCache(LocalCachedMapOptions options) {
protected Cache<CacheKey, CacheValue> createCache(LocalCachedMapOptions<K, V> options) {
if (options.getEvictionPolicy() == EvictionPolicy.NONE) {
return new NoneCacheMap<CacheKey, CacheValue>(options.getTimeToLiveInMillis(), options.getMaxIdleInMillis());
}
Expand Down

0 comments on commit 2da21fb

Please sign in to comment.