View Javadoc

1   /*
2    * joey-sample1 and its relative products are published under the terms
3    * of the Apache Software License.
4    * 
5    * Created on 2004/12/08 8:34:56
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  }