@SuppressWarnings({"unchecked", "rawtypes"}) @Override public Session get(final Builder builder) { return Optional.ofNullable(sessions.find(Filters.eq("_id", builder.sessionId())).first()) .map(doc -> { Map session = new LinkedHashMap<>(doc); Date accessedAt = (Date) session.remove("_accessedAt"); Date createdAt = (Date) session.remove("_createdAt"); Date savedAt = (Date) session.remove("_savedAt"); session.remove("_id"); builder .accessedAt(accessedAt.getTime()) .createdAt(createdAt.getTime()) .savedAt(savedAt.getTime()); session.forEach((k, v) -> builder.set(decode(k.toString()), v.toString())); return builder.build(); }).orElse(null); }
@Override public Session get(final Builder builder) { Map<String, String> attrs = sessions.get(builder.sessionId()); if (attrs == null) { return null; } return builder .accessedAt(Long.parseLong(attrs.remove("_accessedAt"))) .createdAt(Long.parseLong(attrs.remove("_createdAt"))) .savedAt(Long.parseLong(attrs.remove("_savedAt"))) .set(attrs) .build(); }
@SuppressWarnings("unchecked") @Override public Session get(final Builder builder) { String sessionId = builder.sessionId(); Element element = cache.get(sessionId); if (element == null) { return null; } Map<String, String> attrs = new HashMap<>((Map<String, String>) element.getObjectValue()); return builder .accessedAt(Long.parseLong(attrs.remove("_accessedAt"))) .createdAt(Long.parseLong(attrs.remove("_createdAt"))) .savedAt(Long.parseLong(attrs.remove("_savedAt"))) .set(attrs) .build(); }
@Override public Session get(final Builder builder) { Jedis jedis = null; try { jedis = pool.getResource(); String key = key(builder.sessionId()); Map<String, String> attrs = jedis.hgetAll(key); if (attrs == null || attrs.size() == 0) { // expired return null; } if (timeout > 0) { // touch session jedis.expire(key, timeout); } return builder .accessedAt(Long.parseLong(attrs.remove("_accessedAt"))) .createdAt(Long.parseLong(attrs.remove("_createdAt"))) .savedAt(Long.parseLong(attrs.remove("_savedAt"))) .set(attrs) .build(); } finally { if (jedis != null) { jedis.close(); } } }
@Override public Session get(final Builder builder) { ResultSet rs = session .execute(new BoundStatement(selectSQL.apply(tableName)).bind(builder.sessionId())); return Optional.ofNullable(rs.one()) .map(row -> { long createdAt = row.getTimestamp(CREATED_AT).getTime(); long accessedAt = row.getTimestamp(ACCESSED_AT).getTime(); long savedAt = row.getTimestamp(SAVED_AT).getTime(); Map<String, String> attributes = row.getMap(ATTRIBUTES, String.class, String.class); Session session = builder .accessedAt(accessedAt) .createdAt(createdAt) .savedAt(savedAt) .set(attributes) .build(); // touch ttl if (timeout > 0) { save(session); } return session; }) .orElse(null); }
@SuppressWarnings("unchecked") @Override public Session get(final Builder builder) { String key = key(builder.sessionId()); Map<String, String> attrs = (Map<String, String>) memcached.get(key); if (attrs == null || attrs.size() == 0) { // expired return null; } // touch session memcached.touch(key, timeout); return builder .accessedAt(Long.parseLong(attrs.remove("_accessedAt"))) .createdAt(Long.parseLong(attrs.remove("_createdAt"))) .savedAt(Long.parseLong(attrs.remove("_savedAt"))) .set(attrs) .build(); }
@SuppressWarnings({"unchecked", "rawtypes"}) @Override public Session get(final Builder builder) { return Optional.ofNullable(sessions.find(Filters.eq("_id", builder.sessionId())).first()) .map(doc -> { Map session = new LinkedHashMap<>(doc); Date accessedAt = (Date) session.remove("_accessedAt"); Date createdAt = (Date) session.remove("_createdAt"); Date savedAt = (Date) session.remove("_savedAt"); session.remove("_id"); builder .accessedAt(accessedAt.getTime()) .createdAt(createdAt.getTime()) .savedAt(savedAt.getTime()); session.forEach((k, v) -> builder.set(decode(k.toString()), v.toString())); return builder.build(); }).orElse(null); }
@SuppressWarnings("unchecked") @Override public Session get(final Builder builder) { String sessionId = builder.sessionId(); Element element = cache.get(sessionId); if (element == null) { return null; } Map<String, String> attrs = new HashMap<>((Map<String, String>) element.getObjectValue()); return builder .accessedAt(Long.parseLong(attrs.remove("_accessedAt"))) .createdAt(Long.parseLong(attrs.remove("_createdAt"))) .savedAt(Long.parseLong(attrs.remove("_savedAt"))) .set(attrs) .build(); }
@Override public Session get(final Builder builder) { Map<String, String> attrs = sessions.get(builder.sessionId()); if (attrs == null) { return null; } return builder .accessedAt(Long.parseLong(attrs.remove("_accessedAt"))) .createdAt(Long.parseLong(attrs.remove("_createdAt"))) .savedAt(Long.parseLong(attrs.remove("_savedAt"))) .set(attrs) .build(); }
@Override public Session get(final Session.Builder builder) { String sid = builder.sessionId(); JcNode node = new JcNode("n"); JcQuery query = new JcQuery(); query.setClauses(new IClause[]{ MATCH.node(node).label(label).property("_id").value(sid), // touch session DO.SET(node.property("_expire")).to(expire.getAsLong()), RETURN.value(node) }); List<GrNode> result = db.execute(query).resultOf(node); log.debug("touch {} session {} ", sid, result); if (result.size() == 1) { GrNode found = result.get(0); builder .accessedAt(((Number) found.getProperty("_accessedAt").getValue()).longValue()) .createdAt(((Number) found.getProperty("_createdAt").getValue()).longValue()) .savedAt(((Number) found.getProperty("_savedAt").getValue()).longValue()); found.getProperties() .stream() .filter(it -> !SPECIAL.contains(it.getName())) .forEach(p -> builder.set(p.getName(), p.getValue().toString())); return builder.build(); } return null; }
@Override public Session get(final Builder builder) { Jedis jedis = null; try { jedis = pool.getResource(); String key = key(builder.sessionId()); Map<String, String> attrs = jedis.hgetAll(key); if (attrs == null || attrs.size() == 0) { // expired return null; } if (timeout > 0) { // touch session jedis.expire(key, timeout); } return builder .accessedAt(Long.parseLong(attrs.remove("_accessedAt"))) .createdAt(Long.parseLong(attrs.remove("_createdAt"))) .savedAt(Long.parseLong(attrs.remove("_savedAt"))) .set(attrs) .build(); } finally { if (jedis != null) { jedis.close(); } } }
@Override public Session get(final Builder builder) { ResultSet rs = session .execute(new BoundStatement(selectSQL.apply(tableName)).bind(builder.sessionId())); return Optional.ofNullable(rs.one()) .map(row -> { long createdAt = row.getTimestamp(CREATED_AT).getTime(); long accessedAt = row.getTimestamp(ACCESSED_AT).getTime(); long savedAt = row.getTimestamp(SAVED_AT).getTime(); Map<String, String> attributes = row.getMap(ATTRIBUTES, String.class, String.class); Session session = builder .accessedAt(accessedAt) .createdAt(createdAt) .savedAt(savedAt) .set(attributes) .build(); // touch ttl if (timeout > 0) { save(session); } return session; }) .orElse(null); }
@Override public Session get(final Builder builder) { return Optional .ofNullable(bucket.getAndTouch(N1Q.qualifyId(SESSION, builder.sessionId()), expiry)) .map(doc -> { Map session = doc.content().toMap(); Long accessedAt = (Long) session.remove("_accessedAt"); Long createdAt = (Long) session.remove("_createdAt"); Long savedAt = (Long) session.remove("_savedAt"); return builder .accessedAt(accessedAt) .createdAt(createdAt) .savedAt(savedAt) .set(session) .build(); }).orElse(null); }
@SuppressWarnings("unchecked") @Override public Session get(final Builder builder) { String key = key(builder.sessionId()); Map<String, String> attrs = (Map<String, String>) memcached.get(key); if (attrs == null || attrs.size() == 0) { // expired return null; } // touch session memcached.touch(key, timeout); return builder .accessedAt(Long.parseLong(attrs.remove("_accessedAt"))) .createdAt(Long.parseLong(attrs.remove("_createdAt"))) .savedAt(Long.parseLong(attrs.remove("_savedAt"))) .set(attrs) .build(); }