/** * */ package nl.ipo.cds.admin.ba.listener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; import nl.ipo.cds.admin.ba.util.DownloadUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; /** * @author eshuism * 22 mei 2012 */ public class CleanupListener implements HttpSessionListener, ApplicationListener<ContextRefreshedEvent> { private static final Log logger = LogFactory.getLog(CleanupListener.class); /* (non-Javadoc) * @see javax.servlet.http.HttpSessionListener#sessionCreated(javax.servlet.http.HttpSessionEvent) */ @Override public void sessionCreated(HttpSessionEvent se) { // Nothing to do logger.debug("session created with id: " + se.getSession().getId()); } /* (non-Javadoc) * @see javax.servlet.http.HttpSessionListener#sessionDestroyed(javax.servlet.http.HttpSessionEvent) */ @Override public void sessionDestroyed(HttpSessionEvent se) { /* Clean up zip-files that are downloaded during this session */ String sessionId = se.getSession().getId(); logger.debug("session destroyed with id: " + sessionId); // The directory to be deleted boolean deleteSuccess = DownloadUtils.deleteDownloadSessionDirectory(sessionId); if(!deleteSuccess){ logger.warn("Not be able to delete download-directory for session with id: " + sessionId); } } /* (non-Javadoc) * @see org.springframework.context.ApplicationListener#onApplicationEvent(org.springframework.context.ApplicationEvent) */ @Override public void onApplicationEvent(ContextRefreshedEvent event) { logger.debug("ApplicationContext started: " + event.getApplicationContext().getDisplayName()); /* Delete the download directory at application startup * It still could have files in it after a crash of the JVM cq Tomcat */ boolean deleteSuccess = DownloadUtils.deleteDownloadDirectory(); if(!deleteSuccess){ logger.warn("Not be able to delete download-directory at application startup."); } } }