From 953ab44909c1ebcc613ed7ec98d0a82fed458f5c Mon Sep 17 00:00:00 2001 From: Marko Mihovilic Date: Thu, 13 Jun 2013 18:40:39 +0200 Subject: [Bug 410750] NoSQLSessions: implement session context data persistence across server restarts --- .../eclipse/jetty/nosql/NoSqlSessionManager.java | 26 +++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/NoSqlSessionManager.java b/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/NoSqlSessionManager.java index 38f148e653..3a70ef61dc 100644 --- a/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/NoSqlSessionManager.java +++ b/jetty-nosql/src/main/java/org/eclipse/jetty/nosql/NoSqlSessionManager.java @@ -40,6 +40,7 @@ public abstract class NoSqlSessionManager extends AbstractSessionManager impleme private int _savePeriod=0; private int _idlePeriod=-1; private boolean _invalidateOnStop; + private boolean _preserveOnStop; private boolean _saveAllAttributes; /* ------------------------------------------------------------ */ @@ -104,7 +105,10 @@ public abstract class NoSqlSessionManager extends AbstractSessionManager impleme for (NoSqlSession session : sessions) { session.save(false); - removeSession(session,false); + + if (!_preserveOnStop) { + removeSession(session,false); + } } } else @@ -277,6 +281,16 @@ public abstract class NoSqlSessionManager extends AbstractSessionManager impleme return _invalidateOnStop; } + /* ------------------------------------------------------------ */ + /** + * Preserve sessions when the session manager is stopped otherwise remove them from the DB. + * @return the removeOnStop + */ + public boolean isPreserveOnStop() + { + return _preserveOnStop; + } + /* ------------------------------------------------------------ */ /** * Invalidate sessions when the session manager is stopped otherwise save them to the DB. @@ -287,6 +301,16 @@ public abstract class NoSqlSessionManager extends AbstractSessionManager impleme _invalidateOnStop = invalidateOnStop; } + /* ------------------------------------------------------------ */ + /** + * Preserve sessions when the session manager is stopped otherwise remove them from the DB. + * @param removeOnStop the removeOnStop to set + */ + public void setPreserveOnStop(boolean preserveOnStop) + { + _preserveOnStop = preserveOnStop; + } + /* ------------------------------------------------------------ */ /** * Save all attributes of a session or only update the dirty attributes. -- cgit v1.2.3