1
2
3
4
5
6
7 package org.asyrinx.joey.hibernate.seasar.filter;
8
9 import java.io.IOException;
10
11 import javax.servlet.FilterChain;
12 import javax.servlet.ServletException;
13 import javax.servlet.ServletRequest;
14 import javax.servlet.ServletResponse;
15
16 import org.seasar.hibernate.S2Session;
17
18 /***
19 * @author takeshi
20 */
21 public class RequestFilterChainTxImpl implements RequestFilterChainTx {
22
23 private final RequestS2SessionFactory sessionFactory;
24
25 private final S2SessionFactoryWrapper factoryWrapper;
26
27 public RequestFilterChainTxImpl(RequestS2SessionFactory sessionFactory, S2SessionFactoryWrapper factoryWrapper) {
28 this.sessionFactory = sessionFactory;
29 this.factoryWrapper = factoryWrapper;
30 }
31
32 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
33 ServletException {
34 final S2Session s2session = factoryWrapper.getSession();
35 sessionFactory.setSession(s2session);
36 try {
37 chain.doFilter(request, response);
38 } finally {
39 sessionFactory.setSession(null);
40 }
41 }
42
43 }