Commit 180fa4fa by Tuomas Riihimäki

Session management bean can handle concurrency and transactions by itself. No ne…

…ed to use bean managed
1 parent 44b77763
......@@ -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!