/** * Sencha GXT 3.0.0b - Sencha for GWT * Copyright(c) 2007-2012, Sencha, Inc. * licensing@sencha.com * * http://www.sencha.com/products/gxt/license/ */ package com.sencha.gxt.examples.resources.server; import java.io.IOException; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class EntityManagerFilter implements Filter { private static EntityManagerFactory factory = null; public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { EntityManager em = null; try { em = factory.createEntityManager(); EntityManagerUtil.MANAGERS.set(em); chain.doFilter(request, response); EntityManagerUtil.MANAGERS.remove(); } finally { try { if (em != null) em.close(); } catch (Throwable t) { t.printStackTrace(); } } } public void init(FilterConfig config) { destroy(); factory = EMF.get(); } public void destroy() { if (factory != null) factory.close(); } }