diff --git a/src/main/scala/servlet/SessionCleanupListener.scala b/src/main/scala/servlet/SessionCleanupListener.scala new file mode 100644 index 0000000..cff794e --- /dev/null +++ b/src/main/scala/servlet/SessionCleanupListener.scala @@ -0,0 +1,19 @@ +package servlet + +import util.FileUploadUtil +import javax.servlet.http.{HttpSessionEvent, HttpSessionListener} +import javax.servlet.annotation.WebListener + +/** + * Removes session associated temporary files when session is destroyed. + */ +class SessionCleanupListener extends HttpSessionListener { + + def sessionCreated(se: HttpSessionEvent): Unit = {} + + def sessionDestroyed(se: HttpSessionEvent): Unit = { + println("** session destroyed: " + se.getSession.getId) + FileUploadUtil.removeTemporaryFiles()(se.getSession) + } + +} diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index a051a67..101dcd9 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -5,12 +5,19 @@ version="3.0"> + + + + servlet.SessionCleanipListener + + + org.scalatra.servlet.ScalatraListener - + GitRepositoryServlet servlet.GitRepositoryServlet