Commit 2c43b839 by Juho Juopperi

Merge branch 'SessionMgmt' into 'master'

Session management fixups

Session management bean gets called every time user enters the page. Collection implementations can handle concurrent read and write access and there is no need for transactions, so there is no need for container managed concurrency and transaction management.

See merge request !259
2 parents ddb5b2e7 180fa4fa
......@@ -19,24 +19,23 @@
package fi.codecrew.moya.beans;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.ConcurrentSkipListSet;
import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed;
import javax.ejb.ConcurrencyManagement;
import javax.ejb.ConcurrencyManagementType;
import javax.ejb.LocalBean;
import javax.ejb.Singleton;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.SessionMgmtBeanLocal;
import fi.codecrew.moya.enums.apps.UserPermission;
/**
......@@ -44,6 +43,8 @@ import fi.codecrew.moya.enums.apps.UserPermission;
*/
@Singleton
@LocalBean
@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
@DeclareRoles({ UserPermission.S_MANAGE_HTTP_SESSION })
public class SessionMgmtBean implements SessionMgmtBeanLocal {
......@@ -54,7 +55,7 @@ public class SessionMgmtBean implements SessionMgmtBeanLocal {
// TODO Auto-generated constructor stub
}
private final ConcurrentSkipListMap<String, String> sessionUsers = new ConcurrentSkipListMap<String, String>();
private final ConcurrentHashMap<String, String> sessionUsers = new ConcurrentHashMap<String, String>();
private final Set<HttpSession> sessions = Collections.newSetFromMap(new ConcurrentHashMap<HttpSession, Boolean>());
@SuppressWarnings("unused")
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!