diff --git a/redisson-tomcat/redisson-tomcat-10/src/main/java/org/redisson/tomcat/RedissonSession.java b/redisson-tomcat/redisson-tomcat-10/src/main/java/org/redisson/tomcat/RedissonSession.java index 72e58803b9c9aed216134af7fe2d785802d09096..0a5ef60d1f1d9e3fb1e263256d95238a759ab90c 100644 --- a/redisson-tomcat/redisson-tomcat-10/src/main/java/org/redisson/tomcat/RedissonSession.java +++ b/redisson-tomcat/redisson-tomcat-10/src/main/java/org/redisson/tomcat/RedissonSession.java @@ -71,14 +71,16 @@ public class RedissonSession extends StandardSession { private Set removedAttributes = Collections.emptySet(); private final boolean broadcastSessionEvents; + private final boolean broadcastSessionUpdates; - public RedissonSession(RedissonSessionManager manager, ReadMode readMode, UpdateMode updateMode, boolean broadcastSessionEvents) { + public RedissonSession(RedissonSessionManager manager, ReadMode readMode, UpdateMode updateMode, boolean broadcastSessionEvents, boolean broadcastSessionUpdates) { super(manager); this.redissonManager = manager; this.readMode = readMode; this.updateMode = updateMode; this.topic = redissonManager.getTopic(); this.broadcastSessionEvents = broadcastSessionEvents; + this.broadcastSessionUpdates = broadcastSessionUpdates; if (updateMode == UpdateMode.AFTER_REQUEST) { removedAttributes = Collections.newSetFromMap(new ConcurrentHashMap()); @@ -183,7 +185,7 @@ public class RedissonSession extends StandardSession { } else { map.delete(); } - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(new AttributesClearMessage(redissonManager.getNodeId(), getId())); } map = null; @@ -201,7 +203,7 @@ public class RedissonSession extends StandardSession { newMap.put(LAST_ACCESSED_TIME_ATTR, lastAccessedTime); newMap.put(THIS_ACCESSED_TIME_ATTR, thisAccessedTime); map.putAll(newMap); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); } } @@ -253,7 +255,7 @@ public class RedissonSession extends StandardSession { return; } map.fastPut(name, value); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { try { topic.publish(new AttributeUpdateMessage(redissonManager.getNodeId(), getId(), name, value, this.map.getCodec().getMapValueEncoder())); } catch (IOException e) { @@ -319,7 +321,7 @@ public class RedissonSession extends StandardSession { newMap.put(LAST_ACCESSED_TIME_ATTR, lastAccessedTime); newMap.put(THIS_ACCESSED_TIME_ATTR, thisAccessedTime); map.putAll(newMap); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); } expireSession(); @@ -376,7 +378,7 @@ public class RedissonSession extends StandardSession { private void removeRedisAttribute(String name) { if (updateMode == UpdateMode.DEFAULT && map != null) { map.fastRemove(name); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(new AttributeRemoveMessage(redissonManager.getNodeId(), getId(), new HashSet(Arrays.asList(name)))); } } @@ -425,7 +427,7 @@ public class RedissonSession extends StandardSession { map.putAll(newMap); map.fastRemove(removedAttributes.toArray(new String[0])); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); if (updateMode == UpdateMode.AFTER_REQUEST) { diff --git a/redisson-tomcat/redisson-tomcat-10/src/main/java/org/redisson/tomcat/RedissonSessionManager.java b/redisson-tomcat/redisson-tomcat-10/src/main/java/org/redisson/tomcat/RedissonSessionManager.java index 21d7997d251f6623a8a2591da4971ea521b61da9..666a7fc19489de239be8e0444f65b725757cbd9f 100644 --- a/redisson-tomcat/redisson-tomcat-10/src/main/java/org/redisson/tomcat/RedissonSessionManager.java +++ b/redisson-tomcat/redisson-tomcat-10/src/main/java/org/redisson/tomcat/RedissonSessionManager.java @@ -48,14 +48,15 @@ public class RedissonSessionManager extends ManagerBase { private final Log log = LogFactory.getLog(RedissonSessionManager.class); - private RedissonClient redisson; + protected RedissonClient redisson; private String configPath; private ReadMode readMode = ReadMode.REDIS; private UpdateMode updateMode = UpdateMode.DEFAULT; - private String keyPrefix = ""; + protected String keyPrefix = ""; private boolean broadcastSessionEvents = false; + private boolean broadcastSessionUpdates = true; private final String nodeId = UUID.randomUUID().toString(); @@ -80,7 +81,15 @@ public class RedissonSessionManager extends ManagerBase { public void setBroadcastSessionEvents(boolean replicateSessionEvents) { this.broadcastSessionEvents = replicateSessionEvents; } - + + public boolean isBroadcastSessionUpdates() { + return broadcastSessionUpdates; + } + + public void setBroadcastSessionUpdates(boolean broadcastSessionUpdates) { + this.broadcastSessionUpdates = broadcastSessionUpdates; + } + public String getReadMode() { return readMode.toString(); } @@ -194,7 +203,7 @@ public class RedissonSessionManager extends ManagerBase { @Override public Session createEmptySession() { - return new RedissonSession(this, readMode, updateMode, broadcastSessionEvents); + return new RedissonSession(this, readMode, updateMode, broadcastSessionEvents, this.broadcastSessionUpdates); } @Override @@ -259,7 +268,7 @@ public class RedissonSessionManager extends ManagerBase { } } - if (readMode == ReadMode.MEMORY || broadcastSessionEvents) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates || broadcastSessionEvents) { RTopic updatesTopic = getTopic(); messageListener = new MessageListener() { diff --git a/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSession.java b/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSession.java index 5fa31cbfd285bc69dd3a47ba8bb36bf579c9d19a..1ca112f930fbdd51ac0acedd5a0131a0674a6697 100644 --- a/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSession.java +++ b/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSession.java @@ -71,14 +71,16 @@ public class RedissonSession extends StandardSession { private Set removedAttributes = Collections.emptySet(); private final boolean broadcastSessionEvents; + private final boolean broadcastSessionUpdates; - public RedissonSession(RedissonSessionManager manager, ReadMode readMode, UpdateMode updateMode, boolean broadcastSessionEvents) { + public RedissonSession(RedissonSessionManager manager, ReadMode readMode, UpdateMode updateMode, boolean broadcastSessionEvents, boolean broadcastSessionUpdates) { super(manager); this.redissonManager = manager; this.readMode = readMode; this.updateMode = updateMode; this.topic = redissonManager.getTopic(); this.broadcastSessionEvents = broadcastSessionEvents; + this.broadcastSessionUpdates = broadcastSessionUpdates; if (updateMode == UpdateMode.AFTER_REQUEST) { removedAttributes = Collections.newSetFromMap(new ConcurrentHashMap()); @@ -183,7 +185,7 @@ public class RedissonSession extends StandardSession { } else { map.delete(); } - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(new AttributesClearMessage(redissonManager.getNodeId(), getId())); } map = null; @@ -201,7 +203,7 @@ public class RedissonSession extends StandardSession { newMap.put(LAST_ACCESSED_TIME_ATTR, lastAccessedTime); newMap.put(THIS_ACCESSED_TIME_ATTR, thisAccessedTime); map.putAll(newMap); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); } } @@ -253,7 +255,7 @@ public class RedissonSession extends StandardSession { return; } map.fastPut(name, value); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { try { topic.publish(new AttributeUpdateMessage(redissonManager.getNodeId(), getId(), name, value, this.map.getCodec().getMapValueEncoder())); } catch (IOException e) { @@ -319,7 +321,7 @@ public class RedissonSession extends StandardSession { newMap.put(LAST_ACCESSED_TIME_ATTR, lastAccessedTime); newMap.put(THIS_ACCESSED_TIME_ATTR, thisAccessedTime); map.putAll(newMap); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); } expireSession(); @@ -399,7 +401,7 @@ public class RedissonSession extends StandardSession { private void removeRedisAttribute(String name) { if (updateMode == UpdateMode.DEFAULT && map != null) { map.fastRemove(name); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(new AttributeRemoveMessage(redissonManager.getNodeId(), getId(), new HashSet(Arrays.asList(name)))); } } @@ -448,7 +450,7 @@ public class RedissonSession extends StandardSession { map.putAll(newMap); map.fastRemove(removedAttributes.toArray(new String[0])); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); if (updateMode == UpdateMode.AFTER_REQUEST) { diff --git a/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSessionManager.java b/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSessionManager.java index 7759c56f3d2b4df2d8acfe8743203354fca387f1..c308d07d4f89ce03e24bb630877a7843cdffc25a 100644 --- a/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSessionManager.java +++ b/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSessionManager.java @@ -48,14 +48,15 @@ public class RedissonSessionManager extends ManagerBase { private final Log log = LogFactory.getLog(RedissonSessionManager.class); - private RedissonClient redisson; + protected RedissonClient redisson; private String configPath; private ReadMode readMode = ReadMode.REDIS; private UpdateMode updateMode = UpdateMode.DEFAULT; - private String keyPrefix = ""; + protected String keyPrefix = ""; private boolean broadcastSessionEvents = false; + private boolean broadcastSessionUpdates = true; private final String nodeId = UUID.randomUUID().toString(); @@ -80,7 +81,15 @@ public class RedissonSessionManager extends ManagerBase { public void setBroadcastSessionEvents(boolean replicateSessionEvents) { this.broadcastSessionEvents = replicateSessionEvents; } - + + public boolean isBroadcastSessionUpdates() { + return broadcastSessionUpdates; + } + + public void setBroadcastSessionUpdates(boolean broadcastSessionUpdates) { + this.broadcastSessionUpdates = broadcastSessionUpdates; + } + public String getReadMode() { return readMode.toString(); } @@ -194,7 +203,7 @@ public class RedissonSessionManager extends ManagerBase { @Override public Session createEmptySession() { - return new RedissonSession(this, readMode, updateMode, broadcastSessionEvents); + return new RedissonSession(this, readMode, updateMode, broadcastSessionEvents, this.broadcastSessionUpdates); } @Override @@ -259,7 +268,7 @@ public class RedissonSessionManager extends ManagerBase { } } - if (readMode == ReadMode.MEMORY || broadcastSessionEvents) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates || broadcastSessionEvents) { RTopic updatesTopic = getTopic(); messageListener = new MessageListener() { diff --git a/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSession.java b/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSession.java index 72e58803b9c9aed216134af7fe2d785802d09096..0a5ef60d1f1d9e3fb1e263256d95238a759ab90c 100644 --- a/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSession.java +++ b/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSession.java @@ -71,14 +71,16 @@ public class RedissonSession extends StandardSession { private Set removedAttributes = Collections.emptySet(); private final boolean broadcastSessionEvents; + private final boolean broadcastSessionUpdates; - public RedissonSession(RedissonSessionManager manager, ReadMode readMode, UpdateMode updateMode, boolean broadcastSessionEvents) { + public RedissonSession(RedissonSessionManager manager, ReadMode readMode, UpdateMode updateMode, boolean broadcastSessionEvents, boolean broadcastSessionUpdates) { super(manager); this.redissonManager = manager; this.readMode = readMode; this.updateMode = updateMode; this.topic = redissonManager.getTopic(); this.broadcastSessionEvents = broadcastSessionEvents; + this.broadcastSessionUpdates = broadcastSessionUpdates; if (updateMode == UpdateMode.AFTER_REQUEST) { removedAttributes = Collections.newSetFromMap(new ConcurrentHashMap()); @@ -183,7 +185,7 @@ public class RedissonSession extends StandardSession { } else { map.delete(); } - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(new AttributesClearMessage(redissonManager.getNodeId(), getId())); } map = null; @@ -201,7 +203,7 @@ public class RedissonSession extends StandardSession { newMap.put(LAST_ACCESSED_TIME_ATTR, lastAccessedTime); newMap.put(THIS_ACCESSED_TIME_ATTR, thisAccessedTime); map.putAll(newMap); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); } } @@ -253,7 +255,7 @@ public class RedissonSession extends StandardSession { return; } map.fastPut(name, value); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { try { topic.publish(new AttributeUpdateMessage(redissonManager.getNodeId(), getId(), name, value, this.map.getCodec().getMapValueEncoder())); } catch (IOException e) { @@ -319,7 +321,7 @@ public class RedissonSession extends StandardSession { newMap.put(LAST_ACCESSED_TIME_ATTR, lastAccessedTime); newMap.put(THIS_ACCESSED_TIME_ATTR, thisAccessedTime); map.putAll(newMap); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); } expireSession(); @@ -376,7 +378,7 @@ public class RedissonSession extends StandardSession { private void removeRedisAttribute(String name) { if (updateMode == UpdateMode.DEFAULT && map != null) { map.fastRemove(name); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(new AttributeRemoveMessage(redissonManager.getNodeId(), getId(), new HashSet(Arrays.asList(name)))); } } @@ -425,7 +427,7 @@ public class RedissonSession extends StandardSession { map.putAll(newMap); map.fastRemove(removedAttributes.toArray(new String[0])); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); if (updateMode == UpdateMode.AFTER_REQUEST) { diff --git a/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSessionManager.java b/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSessionManager.java index 03b87dcafd4cac03c56c7747e01a5f8e626f994e..16deef7476e436b2cc19cb8b72a0e44e4abf9b82 100644 --- a/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSessionManager.java +++ b/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSessionManager.java @@ -48,14 +48,15 @@ public class RedissonSessionManager extends ManagerBase { private final Log log = LogFactory.getLog(RedissonSessionManager.class); - private RedissonClient redisson; + protected RedissonClient redisson; private String configPath; private ReadMode readMode = ReadMode.REDIS; private UpdateMode updateMode = UpdateMode.DEFAULT; - private String keyPrefix = ""; + protected String keyPrefix = ""; private boolean broadcastSessionEvents = false; + private boolean broadcastSessionUpdates = true; private final String nodeId = UUID.randomUUID().toString(); @@ -80,7 +81,15 @@ public class RedissonSessionManager extends ManagerBase { public void setBroadcastSessionEvents(boolean replicateSessionEvents) { this.broadcastSessionEvents = replicateSessionEvents; } - + + public boolean isBroadcastSessionUpdates() { + return broadcastSessionUpdates; + } + + public void setBroadcastSessionUpdates(boolean broadcastSessionUpdates) { + this.broadcastSessionUpdates = broadcastSessionUpdates; + } + public String getReadMode() { return readMode.toString(); } @@ -194,7 +203,7 @@ public class RedissonSessionManager extends ManagerBase { @Override public Session createEmptySession() { - return new RedissonSession(this, readMode, updateMode, broadcastSessionEvents); + return new RedissonSession(this, readMode, updateMode, broadcastSessionEvents, this.broadcastSessionUpdates); } @Override @@ -259,7 +268,7 @@ public class RedissonSessionManager extends ManagerBase { } } - if (readMode == ReadMode.MEMORY || broadcastSessionEvents) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates || broadcastSessionEvents) { RTopic updatesTopic = getTopic(); messageListener = new MessageListener() { @@ -354,7 +363,7 @@ public class RedissonSessionManager extends ManagerBase { super.stopInternal(); setState(LifecycleState.STOPPING); - + Pipeline pipeline = getContext().getPipeline(); synchronized (pipeline) { if (readMode == ReadMode.REDIS) { diff --git a/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSession.java b/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSession.java index 72e58803b9c9aed216134af7fe2d785802d09096..0a5ef60d1f1d9e3fb1e263256d95238a759ab90c 100644 --- a/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSession.java +++ b/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSession.java @@ -71,14 +71,16 @@ public class RedissonSession extends StandardSession { private Set removedAttributes = Collections.emptySet(); private final boolean broadcastSessionEvents; + private final boolean broadcastSessionUpdates; - public RedissonSession(RedissonSessionManager manager, ReadMode readMode, UpdateMode updateMode, boolean broadcastSessionEvents) { + public RedissonSession(RedissonSessionManager manager, ReadMode readMode, UpdateMode updateMode, boolean broadcastSessionEvents, boolean broadcastSessionUpdates) { super(manager); this.redissonManager = manager; this.readMode = readMode; this.updateMode = updateMode; this.topic = redissonManager.getTopic(); this.broadcastSessionEvents = broadcastSessionEvents; + this.broadcastSessionUpdates = broadcastSessionUpdates; if (updateMode == UpdateMode.AFTER_REQUEST) { removedAttributes = Collections.newSetFromMap(new ConcurrentHashMap()); @@ -183,7 +185,7 @@ public class RedissonSession extends StandardSession { } else { map.delete(); } - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(new AttributesClearMessage(redissonManager.getNodeId(), getId())); } map = null; @@ -201,7 +203,7 @@ public class RedissonSession extends StandardSession { newMap.put(LAST_ACCESSED_TIME_ATTR, lastAccessedTime); newMap.put(THIS_ACCESSED_TIME_ATTR, thisAccessedTime); map.putAll(newMap); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); } } @@ -253,7 +255,7 @@ public class RedissonSession extends StandardSession { return; } map.fastPut(name, value); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { try { topic.publish(new AttributeUpdateMessage(redissonManager.getNodeId(), getId(), name, value, this.map.getCodec().getMapValueEncoder())); } catch (IOException e) { @@ -319,7 +321,7 @@ public class RedissonSession extends StandardSession { newMap.put(LAST_ACCESSED_TIME_ATTR, lastAccessedTime); newMap.put(THIS_ACCESSED_TIME_ATTR, thisAccessedTime); map.putAll(newMap); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); } expireSession(); @@ -376,7 +378,7 @@ public class RedissonSession extends StandardSession { private void removeRedisAttribute(String name) { if (updateMode == UpdateMode.DEFAULT && map != null) { map.fastRemove(name); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(new AttributeRemoveMessage(redissonManager.getNodeId(), getId(), new HashSet(Arrays.asList(name)))); } } @@ -425,7 +427,7 @@ public class RedissonSession extends StandardSession { map.putAll(newMap); map.fastRemove(removedAttributes.toArray(new String[0])); - if (readMode == ReadMode.MEMORY) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates) { topic.publish(createPutAllMessage(newMap)); if (updateMode == UpdateMode.AFTER_REQUEST) { diff --git a/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSessionManager.java b/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSessionManager.java index 8409ee5f9f4cd19cb65ba50440b6a2d97eee0403..16deef7476e436b2cc19cb8b72a0e44e4abf9b82 100644 --- a/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSessionManager.java +++ b/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSessionManager.java @@ -48,14 +48,15 @@ public class RedissonSessionManager extends ManagerBase { private final Log log = LogFactory.getLog(RedissonSessionManager.class); - private RedissonClient redisson; + protected RedissonClient redisson; private String configPath; private ReadMode readMode = ReadMode.REDIS; private UpdateMode updateMode = UpdateMode.DEFAULT; - private String keyPrefix = ""; + protected String keyPrefix = ""; private boolean broadcastSessionEvents = false; + private boolean broadcastSessionUpdates = true; private final String nodeId = UUID.randomUUID().toString(); @@ -80,7 +81,15 @@ public class RedissonSessionManager extends ManagerBase { public void setBroadcastSessionEvents(boolean replicateSessionEvents) { this.broadcastSessionEvents = replicateSessionEvents; } - + + public boolean isBroadcastSessionUpdates() { + return broadcastSessionUpdates; + } + + public void setBroadcastSessionUpdates(boolean broadcastSessionUpdates) { + this.broadcastSessionUpdates = broadcastSessionUpdates; + } + public String getReadMode() { return readMode.toString(); } @@ -194,7 +203,7 @@ public class RedissonSessionManager extends ManagerBase { @Override public Session createEmptySession() { - return new RedissonSession(this, readMode, updateMode, broadcastSessionEvents); + return new RedissonSession(this, readMode, updateMode, broadcastSessionEvents, this.broadcastSessionUpdates); } @Override @@ -259,7 +268,7 @@ public class RedissonSessionManager extends ManagerBase { } } - if (readMode == ReadMode.MEMORY || broadcastSessionEvents) { + if (readMode == ReadMode.MEMORY && this.broadcastSessionUpdates || broadcastSessionEvents) { RTopic updatesTopic = getTopic(); messageListener = new MessageListener() {