package com.rayo.web;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.rayo.server.listener.XmppMessageListener;
import com.rayo.server.listener.XmppMessageListenerGroup;
public class RayoServletSessionListener implements HttpSessionListener {
public static final String XMPP_LISTENER = "xmpp.listener";
@Override
public void sessionCreated(HttpSessionEvent se) {
XmppMessageListener listener = (XmppMessageListener)se.getSession().getAttribute(XMPP_LISTENER);
if (listener != null) {
// Remove listener from the group of active listeners
WebApplicationContext context = WebApplicationContextUtils
.getWebApplicationContext(se.getSession().getServletContext());
XmppMessageListenerGroup group = (XmppMessageListenerGroup)context.getBean("xmppMessageListenerGroup");
if (group != null) {
group.removeXmppMessageListener(listener);
}
}
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
}
}