From 8788aaef5a26f6cb02a89084864317ead2ac5941 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Thu, 9 Sep 2021 07:42:55 -0500 Subject: [PATCH 1/3] Issue #6752 - Extensible DefaultSessionCache map implementation Signed-off-by: Joakim Erdfelt --- .../jetty/server/session/DefaultSessionCache.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java b/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java index b178bd68a289..d67cca276b68 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java @@ -28,7 +28,7 @@ /** * DefaultSessionCache * - * A session store that keeps its sessions in memory in a concurrent map + * A session store that keeps its sessions in memory within a concurrent map */ @ManagedObject public class DefaultSessionCache extends AbstractSessionCache @@ -38,7 +38,7 @@ public class DefaultSessionCache extends AbstractSessionCache /** * The cache of sessions in a concurrent map */ - protected ConcurrentMap _sessions = new ConcurrentHashMap<>(); + private final ConcurrentMap _sessions; private final CounterStatistic _stats = new CounterStatistic(); @@ -46,8 +46,18 @@ public class DefaultSessionCache extends AbstractSessionCache * @param manager The SessionHandler related to this SessionCache */ public DefaultSessionCache(SessionHandler manager) + { + this(manager, new ConcurrentHashMap<>()); + } + + /** + * @param manager The SessionHandler related to this SessionCache + * @param sessionMap The session map implementation to use + */ + public DefaultSessionCache(SessionHandler manager, ConcurrentMap sessionMap) { super(manager); + this._sessions = sessionMap; } /** From 8991b7f452766a8e5a422aed3760ac27fc56f290 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 14 Sep 2021 15:37:09 -0500 Subject: [PATCH 2/3] Issue #6752 - Extensible DefaultSessionCache map implementation Addressing changes requested from review Signed-off-by: Joakim Erdfelt --- .../jetty/server/session/DefaultSessionCache.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java b/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java index d67cca276b68..acef8b434b4d 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java @@ -13,6 +13,7 @@ package org.eclipse.jetty.server.session; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.function.Function; @@ -52,12 +53,12 @@ public DefaultSessionCache(SessionHandler manager) /** * @param manager The SessionHandler related to this SessionCache - * @param sessionMap The session map implementation to use + * @param sessions The session map implementation to use */ - public DefaultSessionCache(SessionHandler manager, ConcurrentMap sessionMap) + public DefaultSessionCache(SessionHandler manager, ConcurrentMap sessions) { super(manager); - this._sessions = sessionMap; + _sessions = Objects.requireNonNull(sessions, "Session Map may not be null"); } /** @@ -194,4 +195,11 @@ public boolean doReplace(String id, Session oldValue, Session newValue) { return _sessions.replace(id, oldValue, newValue); } + + @Override + protected void doStart() throws Exception + { + Objects.requireNonNull(_sessions, "Session Map may not be null"); + super.doStart(); + } } From a223815cbffbbdfcf50d1b56b9721a72ce6fe577 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 14 Sep 2021 21:00:04 -0500 Subject: [PATCH 3/3] Issue #6752 - Extensible DefaultSessionCache map implementation More changes requested from review Signed-off-by: Joakim Erdfelt --- .../eclipse/jetty/server/session/DefaultSessionCache.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java b/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java index acef8b434b4d..93aa8c7b8793 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/session/DefaultSessionCache.java @@ -195,11 +195,4 @@ public boolean doReplace(String id, Session oldValue, Session newValue) { return _sessions.replace(id, oldValue, newValue); } - - @Override - protected void doStart() throws Exception - { - Objects.requireNonNull(_sessions, "Session Map may not be null"); - super.doStart(); - } }