1 /***
2 *
3 */
4 package hu.elte.tribus.sf;
5
6 import java.io.IOException;
7
8 import javax.servlet.Filter;
9 import javax.servlet.FilterChain;
10 import javax.servlet.FilterConfig;
11 import javax.servlet.ServletException;
12 import javax.servlet.ServletRequest;
13 import javax.servlet.ServletResponse;
14
15 import org.hibernate.Session;
16
17 /***
18 * Yes, there are existing solutions for this pattern, but we are not running spring.
19 *
20 * @author kocka
21 *
22 */
23 public class OpenSessionInViewFilter implements Filter {
24
25
26
27
28 public void destroy() {
29
30
31 }
32
33
34
35
36 public void doFilter(ServletRequest request, ServletResponse response,
37 FilterChain chain) throws IOException, ServletException {
38 Session session = null;
39 try{
40 session = HibernateSessionFactory.getSession();
41 chain.doFilter(request, response);
42 } finally {
43 if(session != null) {
44 HibernateSessionFactory.closeSession();
45 }
46 }
47 }
48
49
50
51
52 public void init(FilterConfig arg0) throws ServletException {
53
54
55 Session session = null;
56 try{
57 session = HibernateSessionFactory.getSession();
58 new Seeder().seed();
59 session.flush();
60 } finally {
61 if(session != null) {
62 HibernateSessionFactory.closeSession();
63 }
64 }
65 }
66 }