@Override protected NoSqlSession loadSession(String clusterId) { Optional<JettySession> row = cache.getUnchecked(clusterId); if (!row.isPresent()) { return null; } JettySession jettySession = row.get(); NoSqlSession session = new NoSqlSession( this, jettySession.getCreated(), jettySession.getAccessed(), jettySession.getClusterId(), jettySession.getVersion()); setData(session, jettySession.getData()); session.didActivate(); return session; }
@Override protected Object refresh(NoSqlSession session, Object version) { Optional<JettySession> optRow = cache.getUnchecked(session.getClusterId()); if (version != null) { if (optRow.isPresent()) { Long savedVersion = optRow.get().getVersion(); if (savedVersion != null && savedVersion == ((Number) version).longValue()) { // refresh not required return version; } } } if (!optRow.isPresent()) { session.invalidate(); return null; } JettySession row = optRow.get(); session.willPassivate(); session.clearAttributes(); setData(session, row.getData()); row.setAccessed(System.currentTimeMillis()); simpleOrmSession.save(row, VISIBILITY_STRING, getSimpleOrmContext()); session.didActivate(); return version; }
@Override protected synchronized NoSqlSession loadSession(String clusterId) { LOG.info("HazelcastSessionManager:loadSession: " + clusterId); HazelcastSessionData o = sessions.get(clusterId); if (o == null) { return null; } Boolean valid = o.isValid(); if (valid == null || !valid) { return null; } Object version = o.getVersion(); Long created = o.getCreationTime(); Long accessed = o.getAccessed(); NoSqlSession session = new NoSqlSession(this, created, accessed, clusterId, version); // get the attributes for the context Map<String, Object> attrs = o.getAttributeMap(); if (attrs != null) { for (String name : attrs.keySet()) { String attr = name; Object value = attrs.get(name); session.doPutOrRemove(attr, value); session.bindValue(attr, value); } } session.didActivate(); return session; }
@Override protected Object save(NoSqlSession session, Object version, boolean activateAfterSave) { LOG.info("HazelcastSessionManager:save: " + session); session.willPassivate(); HazelcastSessionData sessionData = sessions.get(session.getClusterId()); if (sessionData == null) { sessionData = new HazelcastSessionData(); } // handle valid or invalid if (session.isValid()) { // handle new or existing version = handleSessionAddition(session, version, sessionData); } else { sessionData.setValid(false); } sessions.set(session.getClusterId(), sessionData); if (activateAfterSave) { session.didActivate(); } return version; }
session.didActivate(); return version;
session.didActivate(); return version;