/* * JBoss, Home of Professional Open Source * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.seam.wiki.admin; import org.jboss.seam.log.LogProvider; import org.jboss.seam.log.Logging; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; import java.util.concurrent.ConcurrentHashMap; /** * @author Christian Bauer */ public class WikiServletListener implements HttpSessionListener { private static final LogProvider log = Logging.getLogProvider(WikiServletListener.class); // Thread-safe read/write and non-blocking reads (snapshot reads) private static ConcurrentHashMap<String, HttpSession> sessions = new ConcurrentHashMap<String, HttpSession>(); public void sessionCreated(HttpSessionEvent event) { log.debug("starting monitoring of Http session: " + event.getSession().getId()); sessions.put(event.getSession().getId(), event.getSession()); } public void sessionDestroyed(HttpSessionEvent event) { log.debug("stopping monitoring of Http session: " + event.getSession().getId()); sessions.remove(event.getSession().getId()); } public static ConcurrentHashMap<String, HttpSession> getSessions() { return sessions; } }